箭头函数即使使用 .call 或 .apply [重复]

问题描述 投票:0回答:1
var obj = {
    method : () =>{
        console.log(this)
    }
}
obj.method.apply(obj)

我尝试使用

.call
.apply
来设置箭头函数的
this
上下文,但
this
仍然是
undefined
。我知道箭头函数具有词法
this
绑定,但我希望
.call
.apply
仍然允许我更改上下文。有人可以解释为什么会发生这种情况或建议替代方法吗?

javascript ecmascript-6
1个回答
0
投票

我知道箭头函数有词法 this 绑定

是的。

但我希望 .call 或 .apply 仍然允许我更改上下文。

不。这纯粹是词汇。

有人可以解释为什么会发生这种情况吗

这就是箭头函数的设计方式

或建议替代方法?

如果您不需要词法绑定,请不要使用箭头函数。词法绑定是箭头函数的

var obj = {
  method() {
    console.log(this)
  }
}

obj.method();

© www.soinside.com 2019 - 2024. All rights reserved.