读后总结
首先是阅读了《你不知道的 JavaScript 上卷》 this 部分章节之后的小节。
如果要判断一个运行中函数的 this 绑定,就需要找到这个函数的直接调用位置,找到之后就可以顺序应用下面这四条规则来判断 this 的绑定对象。
- new 绑定:由 new 调用,则绑定到新创建的对象
- 显示绑定:由 call 或者 apply 或者 bind 调用,则绑定到指定的对象
- 隐式绑定:由上下文对象调用,则绑定到那个上下文对象
- 默认绑定:在严格模式下绑定到 undefined,否则绑定到全局对象
ES6 的箭头函数并不会使用这四条标准的绑定规则,而是根据当前的词法作用域来决定 this,具体来说,箭头函数会继承外层函数调用的 this 绑定。
好文推荐
书中关于 this 的具体说明,个人认为讲的不是那么好,特别是最近看到一篇特别好的文章之后,建议读者可以参考: this、apply、call、bind 该文辅助学习 this。