gpt4 book ai didi

javascript - 如何从回调中访问此类成员?

转载 作者:搜寻专家 更新时间:2023-11-01 05:26:29 24 4
gpt4 key购买 nike

这个问题最好用一些代码来解释,所以这里是:

// a class
function a_class {
this.a_var = null;
this.a_function = a_class_a_function;
}

// a_class::a_function
function a_class_a_function() {
AFunctionThatTakesACallback(function() {
// How to access this.a_var?
});
}

// An instance
var instance = new a_class();
instance.a_function();

AFunctionThatTakesACallback() 的回调中,如何访问 this.a_var

最佳答案

您需要通过创建引用它的局部变量来扩展 this 的范围,如下所示:

function a_class_a_function() {
var self = this;
AFunctionThatTakesACallback(function() {
console.log(self.a_var);
});
}

之所以需要这样做是因为 AFunctionThatTakesACallback 函数中的 this 引用与当前对象的 this 不同,它可能会引用全局 window 对象。 (通常不是你想要的)。

哦,我有没有提到这叫做 closure

关于javascript - 如何从回调中访问此类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587902/

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