this指向
- 定义: this是一个使用在作用域内部的关键字,全局很少用,大部分是在函数内部使用
- 指向: 全局使用,指向window,函数使用,不管函数怎么定义,不管函数在哪里定义,只看函数的调用(箭头函数除外)
- 普通调用(直接调用/全局调用)函数名():this->window
- 对象调用:xxx.函数名():this->点前面是谁就是谁
- 定时器处理函数
- settimeout(function() {},0):this->window
- setinterval(function() {},0):this->window
- 事件处理函数
- xxx.onclick = function(){}:this->事件源(绑定在谁身上的事件)
- xxx.addeventlistener('',function(){}):this->事件源
- 自执行处理函数
- (function () {}):this->window
- this改变指向的方法
- call()
- 使用方法,直接链接在函数名后面使用
- 语法:fn.call() obj.fn.call()
- 参数:第一个参数就是函数内部的指向,第二个参数开始,依次给函数传递参数
- 特点: 会立即执行函数(不适合用作定时器处理函数或者事件处理函数)
- 作用:伪数组借用数组的方法
- apply()
- 使用方法:直接连接在函数名后面
- 语法:fn.apply() obj.fn.apply()
- 参数:第一个参数,就是函数内部的this指向,第二个参数是一个数组或者为数组都行,里面的每一项依次给函数传递参数
- 会立即执行函数
- 作用:可以给某些功能函数传参
- bind()
- 使用方法:直接连接在函数名后面
- 语法:fn.apply() obj.fn.apply()
- 参数:第一个参数就是函数内部的指向,第二个参数开始,依次给函数传递参数
- 特点:不会立即调用函数,一个已经被改变好 this指向的函数
- 作用:改变事件处理函数或者定时器处理函数的this指向