this 关键字
概念
- 每一个函数内部都有一个关键字 this , this 的值, 和函数的调用有关 ,与函数的书写无关
- 1.一个普通 的群居函数,正常调用的情况下 ,this === window
- 2.如果将函数 放置在对象中 通过对象的语法去调用 那么this === 对象
- 3.事件方式调用 ,this === 事件源 将函数作为 事件处理函数,那么触发的时候,函数内部的this 指向 事件源
- 4.如果将函数作为定时器执行时的函数,那么触发的时候 函数内部的this 指向 全局变量 window
- 普通的调用 和 定时器的调用 时 this 指向 window
切换this执指向的三种方式
1. call()
- 语法 fn.call(this指向, 参数1, 参数2, 参数3......)
2. apply()
- 语法 fn.apply(this指向, [参数1, 参数2, 参数3.....])
3. bind()
- 语法 var newFn = fn.bind(this指向, 参数1, 参数2, 参数3....) newFn()