This question already has answers here:
How to access the correct `this` inside a callback?
(11个答案)
在11个月前关闭。
我有一个带有功能的对象。这是一个简化的版本:
(11个答案)
在11个月前关闭。
我有一个带有功能的对象。这是一个简化的版本:
var app = {
functOne: function(){
document.querySelector('button').addEventListener('click', this.functTwo);
},
functTwo: function(){
console.log('Funct Two has Run');
this.functThree();
},
functThree: function(){
console.log('Funct Three has Run');
}
};
app.functOne();
functOne
中的应用程序将单击处理程序附加到按钮(以启动functTwo)。 FunctTwo
应该执行FunctThree
,但“ this”的上下文不再是“ app”(现在是按钮)。如何从内部(或传递到)functTwo
再次获得“应用程序”(假设应用程序不仅仅像上面的示例那样附加到窗口)。 最佳答案
这可以通过使用Function.prototype.bind()
来实现:
functOne: function(){
document.querySelector('button').addEventListener('click', this.functTwo.bind(this));
},
10-06 07:32