Nat*_*man 4 javascript class class-members
最好用一些代码解释这个问题,所以这里是:
// 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();
Run Code Online (Sandbox Code Playgroud)
从回调中AFunctionThatTakesACallback(),如何访问this.a_var?
您需要this通过创建引用它的局部变量来扩展范围,如下所示:
function a_class_a_function() {
var self = this;
AFunctionThatTakesACallback(function() {
console.log(self.a_var);
});
}
Run Code Online (Sandbox Code Playgroud)
你需要这样做的原因是因为函数中的this引用与当前对象不同,它可能会引用全局对象.(通常不是你想要的).AFunctionThatTakesACallbackthiswindow
哦,我提到这被称为封闭吗?
| 归档时间: |
|
| 查看次数: |
1132 次 |
| 最近记录: |