在以下示例中,我发现此关键字的值意外:
let x = {
z : 10 ,
get func1() {
return function(v) {
console.log(this === v);
}
}
}
x.func1(x)
此关键字的值是对象x,就像它是从该对象执行的一样,我希望只有具有此关键字的get函数等于调用对象x
这个例子向我们展示了差异
let x = {
func2() {
return function(v) {
console.log(this === v);
}
}
}
x.func2()(x);
在两个示例中,都是从对象x执行的是getter函数func1和作为对象的方法的func2,然后执行返回的函数。那么,为什么在第一个示例中此值不等于全局对象而不是对象x。
3
真的,这是一个非常有趣的问题。我从来没有这样的皱纹。
—
TJ Crowder
“ ,就好像是从该对象执行的 ” –但它是在该对象上执行的,就在附近:
—
Bergi
x.func1()
。