我正在尝试将ajax回调函数变量值赋给现有变量。
我有
function test(){
}
test.prototype.click=function(){
this.count;
//call ajax codes.....
//ajax callback function
ajax.callback=function(var1){
//I want to assign returned data to this.count property.
this.count=var1.length
}
}
test.prototype.show=function(){
//wont work, it will show undefined...
alert(this.count);
}
var t=new test();
t.click();
t.show();
我认为这是范围问题,但我不知道如何解决这个问题。任何的想法?提前谢谢。
答案 0 :(得分:1)
是的,在另一个范围内使用它会导致各种问题,因此您需要解决此问题。一种方法是通过不同地定义函数来避免完全使用它。例如,您可以像这样定义计数:
function test() {
function count() {
}
...
只需使用count()而不使用它。前缀。
您还可以为此设置变量,并使用它来引用其他范围内的count。例如:
var self = this;
对此进行范围界定问题可能是一种痛苦,当您使用回调执行更多OO时可能会发生这种情况。很高兴你很早就被介绍过了,所以现在你知道要保持警惕。