我有一个箭头功能,我试图用call()
执行。为简化起见,如下:
按预期运作
const func = (e) => {
console.log(e)
}
func.call(null, e)
嗯...这里发生了什么?
我希望以下代码将element
传递给func
作为this
。
const func = (e) => {
console.log(this)
console.log(e)
}
func.call(element, e)
但是,this
仍为undefined
。
如果我将其切换到常规功能定义,则所有功能都按预期工作。
const func = function (e) {
console.log(this)
console.log(e)
}
func.call(element, e)
问题
为什么我无法将this
的上下文传递到call()
的箭头函数中?
答案 0 :(得分:9)
this
未绑定在箭头函数中,因此call()
和apply()
只能传递参数。 this
被忽略
答案 1 :(得分:1)
在ES6 this中lexical scope表示箭头函数内this
的值与箭头函数外的值相同。在ES6之前的格式this
是您作为call
方法的第一个参数传递的对象。