0

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

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

4

1 回答 1

1

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

function test() {

    function count() {
    }
    ...

并且只使用 count() 而不使用 this。字首。

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

var self = this;

与此有关的范围问题可能会令人头疼,并且可能会在您使用回调执行更多 OO 时发生。很高兴你很早就被介绍了,所以现在你知道要保持警惕。

于 2012-11-28T23:30:42.653 回答