3
注意,相关Value of this inside object method?Function.prototype.call不将此设置为Arrow功能
鉴于
var obj = {
property: 5,
func1: function() {
console.log(this.property);
},
func2:() => {
console.log(this.property);
}
}
this
是Window
在obj.func2()
。
当尝试使用Function.prototype.call()
设置this
到obj
,this
仍然Window
var obj = {
property: 5,
func1: function() {
console.log(this.property);
},
func2:() => {
console.log(this.property);
}
}
obj.func2.call(obj);
这是预期的行为?
为什么
Function.prototype.call()
没有设置的context
obj.func2
到obj
?
'this'为箭头功能从外上下文捕获,所以这是预期的行为。 – zerkms
@zerkms'Function.prototype.call','Function.prototype.apply'无法设置'context':'this'的箭头函数? – guest271314
Nope,http://www.ecma-international.org/ecma-262/6.0/#sec-arrow-function-definitions-runtime-semantics-evaluation – zerkms