箭头函数是怎么绑定this的?
发布于 9 年前 作者 elevensky 7176 次预览 最后一次回复是 9 年前 来自 问答
看了不少资料,但是还是不太明白下面getField函数是从哪个角度来看绑定到了全局变量。
var obj = {
field: 'hello',
getField: () => {
console.log(this.field)
}
}
this是在它当前定义的词法作用域内找,obj里是有this的,getField定义在一个对象里按说obj这个this离他最近啊,怎么绑到全局上去了呢? 总感觉是我理解的角度不对。
7 回复
《你不知道的Javascript上卷》-第一部分-附录C-this词法 应该能解释你的疑问
看看这个 http://www.cnblogs.com/snandy/p/4403111.html 注意点中的3 箭头函数this固定,不再善变
这个确实容易造成误解。
关键是理解“对象字面量”语法。对象字面量中的方法所处的Context,就是这个对象在定义时所处的那个Context,也就是全局Context。
来自酷炫的 CNodeMD
https://github.com/fundon/ES6-QuickStart-and-Tips#arrows-and-lexical-this
来自:https://segmentfault.com/a/1190000007074846
@all 谢谢大家。 @manxisuo 您这么说我点懂了,对象字面量中的方法所处的Context,就是这个对象在定义时所处的那个Context