<you don't know JS> 上卷

2018-01-29  本文已影响15人  CJ_景元

this关键词是JavaScript之中最复杂的机制之一。

关于 this

和词法作用域的机制不同,this的指向是“动态”的,它是函数在调用时执行的绑定,指向什么决定于函数在哪里调用

全面解析

归纳总结为4条:

  1. 使用new调用时,绑定到新创建的对象。
  2. call()或者apply()(以及bind())方法调用时,绑定到指定的对象。
  3. 作为对象的方法调用时,指向该对象本身。
  4. 默认情况:绑定到Window对象,在严格模式下绑定到undefine.

ES6 箭头函数中的 this

其实也并不复杂,只是在一个用词法作用域定义函数的语言里面又使用了“动态”让人感到些许困惑...
所以在ES6之的箭头函数使用了与之前函数不同的机制:
函数体内的this对象就是函数定义时所在对象,不是函数使用时所在的上下文环境。

上一篇 下一篇

猜你喜欢

热点阅读