gpt4 book ai didi

javascript - 在函数对象中单击事件后保留 this 的上下文

转载 作者:行者123 更新时间:2023-12-03 06:02:04 25 4
gpt4 key购买 nike

我有一个带有函数的对象。这是一个简化版本:

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”(现在是按钮)。如何从内部再次获取“app”(或传递给)functTwo (假设应用程序不仅仅像上面的示例那样附加到窗口)。

最佳答案

这是通过使用Function.prototype.bind()来实现的:

  functOne: function(){
document.querySelector('button').addEventListener('click', this.functTwo.bind(this));
},

关于javascript - 在函数对象中单击事件后保留 this 的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39713456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com