使用箭头功能获取当前(this)

时间:2017-10-25 09:24:37

标签: javascript

是否可以获得" old"这个,就像你得到函数()?

addEventListener("click", () => { console.log(this) }) // {}

addEventListener("click", function() => { console.log(this) }) // EventEmitter /.../

3 个答案:

答案 0 :(得分:1)

JavaScript中的箭头函数不会创建新的上下文,因此不会生成“新”或“旧”this。他们正在使用其定义范围内的任何内容。

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

  

箭头功能没有自己的this;使用封闭执行上下文的this值。

此行为与其他语言中的lambda函数完全相同。

答案 1 :(得分:0)

我的问题不清楚。

如果您想要当前点击的元素,请在活动中使用属性currentTarget

addEventListener("click", (e) => { console.log(e.currentTarget) })

如果您想要上一个this,请先存储它:

var that = this;
addEventListener("click", () => { console.log(that) })

答案 2 :(得分:0)

我不相信有一种方法可以让箭头功能像这样 - 保留当前this就是为它设计的。

最佳解决方案是在需要向function() {}提供时使用this