面向对象

1.单列模式

2.工厂模式

3.构造函数

(1) 类Js天生自带的类Object

基类Function Array Number Math Boolean Date Regexp String

1.事件

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

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

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

事件名:onmouseover onmouseout onmousedown onmousemove onmouseup

Onclick  onchange onfocus onblur 等等

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

我们把他叫事件对象

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

鼠标的坐标

event.clientX

event.ClientY

Event 的兼容性

在chrome下 event是undefined 在Ie低版本下是null,火狐下会报错

document.onclick=function(e){

var e=e||window.event

}

2.事件冒泡

什么叫事件冒泡

当给父子元素的同一事件绑定方法时,触发了子元素身上的事件,执行完毕之后,

也会触发父级元素的相同事件,这种传播机制叫事件冒泡。

取消事件冒泡

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

3.事件捕获

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

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

obj.onclick=function(){}

这种写法有一点不好,后者会将前者覆盖掉。

事件绑定的第二种写法

标准浏览器用 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有冒泡也有捕获

4.Call()和apply()

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

xxx.call()或xxx.apply()

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

var obj={

name:"志伟"

}

function fn(){

console.log(this.name)

}

fn.call(obj)

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

所有事件都是异步的。

JS(JavaScript)的深入了解1(更新中···)的更多相关文章

  1. 百度前端学院js课堂作业合集+分析(更新中...)

    第一课:简陋的登录框 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. JS基础知识再整理..........不断更新中

    1.JS的五种基本数据类型:字符串.数值.布尔.null.underfined. 2.在JS中,字符串.数值.布尔三种数据类型,有其属性和方法: 3.字符串的三种常用方法[.indexof()..su ...

  3. JS - 二叉树算法实现与遍历 (更新中...)

    一.关于二叉树: 截图来自:https://segmentfault.com/a/1190000000740261 温馨提示:学习以及使用二叉树概念,心中永远有这么一个图,对于理解和接受二叉树有很大的 ...

  4. 常用JS、jquery 命令(不断更新中)

    设置用户粘贴板中的文本信息:window.clipboardData.setData('Text', location.href); 获取用户粘贴板中的文本信息: window.clipboardDa ...

  5. js坑爹笔试题目汇总(持续更新中)

    把你的面试官问倒,你就是一个合格的面试者了,以下总结一些易错的js笔试题目,会持续更新中.欢迎关注 1,考察this var length = 10 function fn(){ alert(this ...

  6. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  7. JavaScript资源收集分享,持续更新中。。。

    平时收集的一些JavaScript资源,分享给大家 jQuery UI jEasyUI Extensions http://jqext.sinaapp.com 布局做的挺不错,有比较复杂的菜单导航.P ...

  8. gulpfile.js不断更新中...

    Gulp压缩合并js/css文件,压缩图片,以及热更新教程 var gulp = require('gulp');var concat = require('gulp-concat');//- 多个文 ...

  9. 前端深入之js篇丨Array数组操作从入门到成神Up Up Up,持续更新中

    写在前面 随着前端深入的不断学习,发现数组这个数据结构在前端中有着相当大的存在感,由于我初学前端的时候并没有系统性的学习数组,所以我将通过这篇文章同你一起学习数组,希望我们能一起进步,学会熟练操作数组 ...

  10. js常见错误类型及chrome常见报错(更新中)

    ECMA-262 定义了下列 7 种错误类型: 1.Error 错误 2.EvalError 全局错误 eval函数没有正确执行 3.RangeError 范围错误 4.ReferenceError ...

随机推荐

  1. es6中的(=>)箭头函数

    x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义. 箭头函数有两种格式,一种像上面的,只包含 ...

  2. python 模块的执行环境

  3. MaxCompute Mars开发指南

    Mars 算法实践 人脸识别 Mars 是一个基于矩阵的统一分布式计算框架,而且 Mars 已经在 GitHub 中开源.当你看完 Mars 的介绍可能会问它能做什么,这几乎取决于你想做什么,因为 M ...

  4. 【NS2】NS2 教學手冊(转载)

    之前做毕设的时候搜索NS2的相关资料,发现这个里面涵盖很广,特此收藏,感谢原作者的辛勤劳作. NS2 教學手冊 ( NS2 Learning Guide) [快速連結區] My works  中文影音 ...

  5. python print函数

  6. This cache store does not support tagging.

    用户权限管理系统 https://github.com/Zizaco/entrust 再添加角色的时候... 报了一个错.. BadMethodCallException in Repository. ...

  7. 12 将类处理为excel,再将excel处理为类(界限计划3)

    中间使用map作为中间处理 将类处理为excel: 1.读取类转为map //读取btl,转为map public static Map getBtlMap(String rule, BTLDAO b ...

  8. deepin golang微服务搭建go-micro环境

    1.安装micro 需要使用GO1.11以上版本 #linux 下 export GO111MODULE=on export GOPROXY=https://goproxy.cn # 使用如下指令安装 ...

  9. 14-1 jquery的dom操作和事件对象

    一 jquery的操作有,插入,修改,删除,克隆.具体见下方代码实例: <!DOCTYPE html> <html lang="en"> <head& ...

  10. Streamy障碍一:大批量条目