gpt4 book ai didi

javascript - 在 jQuery 按钮回调中获取正确的 "this"

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:10 25 4
gpt4 key购买 nike

我有一个类:

function RustEditor() {

this.init = function() {

var saveButton = this.container.find("button.saveButton");
saveButton.click(function(){this.save();});

};
...

当我点击按钮时,它会提示 this.save 不是一个函数。这是因为这里的“this”不是指 RustEditor 的实例,而是指按钮。我可以在回调闭包中使用什么变量来指向 RustEditor 的实例?我可以使用 rust.editor(它是全局范围内的名称),但那是难闻的代码。

最佳答案

通常的做法是将 this 值括起来,如下所示:

 function RustEditor() {

this.init = function() {
var self = this;

var saveButton = this.container.find("button.saveButton");
saveButton.click(function(){self.save();});

};

根据 tvanfosson 的建议更新:this 在事件处理程序被调用时得到反弹,因此您需要在创建对象时使用一个变量捕获对该类的引用,该变量将在闭包中保留该引用。

关于javascript - 在 jQuery 按钮回调中获取正确的 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128063/

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