Ajax返回变量问题

时间:2012-11-28 23:26:25

标签: javascript

我正在尝试将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();

我认为这是范围问题,但我不知道如何解决这个问题。任何的想法?提前谢谢。

1 个答案:

答案 0 :(得分:1)

是的,在另一个范围内使用它会导致各种问题,因此您需要解决此问题。一种方法是通过不同地定义函数来避免完全使用它。例如,您可以像这样定义计数:

function test() {

    function count() {
    }
    ...

只需使用count()而不使用它。前缀。

您还可以为此设置变量,并使用它来引用其他范围内的count。例如:

var self = this;

对此进行范围界定问题可能是一种痛苦,当您使用回调执行更多OO时可能会发生这种情况。很高兴你很早就被介绍过了,所以现在你知道要保持警惕。