我的javascript命名空间有问题。
我想从ajax回调函数调用secondMethod,但我不知道如何引用它。 我已经这样做了。但是变量thisReference在我看来很尴尬。整个建筑难以阅读。
所以我在那里寻求帮助,并回答如何更好地重写它。
var testObject = new TestObject();
testObject.firstMethod("hello world!");
function TestObject() {
var thisReference = this;
this.firstMethod = function(firstParam) {
ajaxFunc(firstParam, function(ajaxResult) {
thisReference.secondMethod(ajaxResult);
});
};
this.secondMethod = function(secondParam) {
alert("secondMethod " + secondParam);
};
}
function ajaxFunc(hello, callBack) {
callBack(hello);
}
非常感谢。
Ondra
答案 0 :(得分:0)
像你正在做的事情是一种常见的做法。使用:
var that = this;
或:
var self = this;
是保持原始范围的通用名称。
另一个选项(我更喜欢)是将this
对象绑定到您正在调用的方法,以便您可以在回调中访问它。这看起来像这样:
this.firstMethod = function(firstParam) {
ajaxFunc(firstParam, function(ajaxResult) {
this.secondMethod(ajaxResult);
}.bind(this));
};
希望有所帮助。