this
绑定到对象的箭头函数方法?
'use strict'
// Snippet 1
var obj = {
data: 3,
discover: () => {
return this.data
}
}
obj.discover() // -> undefined
obj.discover.bind(obj)() // undefined
// but if I don't use the arrow notation, everything works
// Snippet 2
var obj2 = {
data: 3,
discover: function(){
return this.data
}
}
obj2.discover() // -> 3
答案 0 :(得分:2)
箭头函数不仅仅是一种语法糖,但在某些行为上也有所不同。在箭头函数中,this
始终指向它指向函数定义时的对象。
答案 1 :(得分:0)
答案 2 :(得分:0)
箭头函数与普通函数不同,不应用作对象方法。除其他外,它们不会绑定'this'。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions