平时 js 写的不多,以下代码有个地方不太明白。
let func = () => ({
a: 1,
b: () => {
return this.a;
}
});
let instance = func();
console.log(instance.b()); // undefined
我记得如果this
在一个函数里面的话,this
会被设定为这个函数的调用者。在上面这段代码里调用b
的是instance
,所以this
应该就是instance
。显然instance.a === 1
是成立的,那为什么this.a
会返回undefined
?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.