1.面向对象

(1)单例模式

(2)工厂模式

(3)构造函数

  a.类  js天生自带的类

  基类   object

  子类   Function  Array Number  Math  Boolean  Date  Regexp  String

  

2.事件

  浏览器客户端上客户触发的行为都称为事件

  所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发

  通过obj.事件名=function(){}

  事件名:onmouseover  onmouseout  onmousedown  onmousemove  onmouseup

onclick  onchange  onfouse  onblur等等

  当用户触发一个事件时,浏览器的所有的详细信息都存在一个叫event的对象上,我们把它叫做事件对象

  所有的事件在绑定方法的时候,天生自带一个参数就叫event

  鼠标的坐标

    event.clientX

    event.clientY

    

  event的兼容性

    在Chrome下的event是undefined,在ie低版本下是null,火狐下会报错

    处理兼容性

    

3.事件冒泡

  什么叫事件冒泡

  当给父子元素的同一事件绑定方法时,触发了子元素身上的事件,执行完毕之后,也会触发父级元素的相同事件,这种传播机制叫事件冒泡

  

  取消事件冒泡

  event对象有个属性叫cancelBubble默认值是false改成true就取消当前事件冒泡

  

4.事件捕获

  给一个元素绑定事件,普通写法是

  obj.onclick=function(){}  这就相当于给obj的onclick属性赋值一个道理

  这种写法有一点不好,如果有两个的话,后者会把前者覆盖掉

  事件绑定的第二种写法

  标准浏览器用 addEventListener()这个方法

  ie低版本用attachEvent()这个方法

  addEventListener(参数1,参数2,参数3)

  参数1  是事件名,事件名不能带on

  参数2  事件函数

  参数3  是布尔值,代表捕获不捕获,默认值是false,不捕获但是冒泡

  事件捕获

    (1)ie低版本没有捕获

    (2)普通事件绑定写法没有捕获

  事件捕获

    给父子元素用addEventListener()绑定同一个事件时,当触发子元素身上的事件,会先触发父元素,然后再传递给子元素,这种传播机制叫事件捕获

  attachEvent()和addEventListener()二者的区别

    (1)attachEvent只用在ie8以下,addEventListener()适合标准浏览器

    (2)attachEvent的事件名带on而addEventLIstener事件名不带on

    (3)attachEvent函数里面的this是window,而addEventListener函数里面的this是当前元素

  对象

    attachEvent只有冒泡没有捕获,addEventListener有冒泡事件也有捕获

5.call()和apply()

  call和apply,就是改变函数里面的this的指向方法

  xxx.call()或xxx.apply()

  特别强调一下xxx必须是function(普通函数,类,构造函数)

  

  

  call()中第一个参数是null的时候,函数里面的this还是指向原来的,不变。

  所有事件都是异步的

  

  

js笔记18的更多相关文章

  1. springmvc学习笔记(18)-json数据交互

    springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...

  2. Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel

    Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只 ...

  3. SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题

    目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...

  4. JAVA自学笔记18

    JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...

  5. golang学习笔记18 用go语言编写移动端sdk和app开发gomobile

    golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...

  6. cocos2d-x学习笔记(18)--游戏打包(windows平台)

    cocos2d-x学习笔记(18)--游戏打包(windows平台)           之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...

  7. NodeJS学习笔记 (18)基础调试-console(ok)

    模块概览 console模块提供了基础的调试功能.使用很简单,常用的API主要有 console.log().console.error(). 此外,可以基于Console类,方便的扩展出自己的con ...

  8. Data Visualization and D3.js 笔记(1)

    课程地址: https://classroom.udacity.com/courses/ud507 什么是数据可视化? 高效传达一个故事/概念,探索数据的pattern 通过颜色.尺寸.形式在视觉上表 ...

  9. js笔记-0

    #js笔记-0 数组: indexOf方法: Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexO ...

随机推荐

  1. Visual Lab Online —— 事后分析

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:事后分析 事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件使得编写简 ...

  2. OO第1.2次作业·魔鬼的三角函数化简

    多年以后,面对办公室的屏幕,我会回忆起开始肝第二周OO作业的那个遥远的下午.那时的程序是一个一两百行的符号求导,基类与接口在包里一字排开,工整的注释一望到底 谁能想到,接下来的十几个小时我要经历什么样 ...

  3. slickgrid ( nsunleo-slickgrid ) 8 区域选择与复制粘贴

    区域选择 区域选择是通过插件CellRangeSelector实现的,默认不支持跨冻结列进行选择,修正了选择,支持跨冻结列,代码如下,通过判断选择的起点和终点所落在的冻结范围进行计算,如从左往右进行复 ...

  4. zimbra安装ssl证书

    zimbra在后台安装证书签发机构签发证书出现时候出现错误:{RemoteManager: mail.domain.com->zimbra@mail.domain.com:22} com.zim ...

  5. 一文搞懂spring的常用注解

    spring传统做法是使用xml文件对bean进行注入和配置.通过使用spring提供的注解,可以极大的降低配置xml文件的繁琐.本文将介绍常用的注解. 一@Autowired Autowired意为 ...

  6. C++知识点案例 笔记-2

    1.友元函数 2.友元类 3.继承(公有继承) 4.公有继承的访问权限 5.私有继承的访问权限 6.保护继承的访问权限(两次继承) ==友元函数== #include <iostream> ...

  7. Apache Flink 1.12.0 正式发布,DataSet API 将被弃用,真正的流批一体

    Apache Flink 1.12.0 正式发布 Apache Flink 社区很荣幸地宣布 Flink 1.12.0 版本正式发布!近 300 位贡献者参与了 Flink 1.12.0 的开发,提交 ...

  8. shell应用之简单计算器

    1 #!/bin/bash 2 while : 3 do 4 read -p "请输入计算规则:" JS 5 if [ -z $JS ];then 6 exit 7 else 8 ...

  9. STM32的时钟系统RCC详细整理(转载)

    一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...

  10. hard way for code

    奋斗吧骚年:https://learncodethehardway.org/ 有关linuxz命令的URL:man.linuxde.net