this 关键字

70 阅读1分钟

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()