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

ええ、これを別のスコープ内で使用すると、あらゆる種類の問題が発生するため、これを回避する必要があります。1つの方法は、関数を別の方法で定義することにより、これを完全に使用しないようにすることです。たとえば、次のようにカウントを定義できます。

function test() {

    function count() {
    }
    ...

そして、これなしでcount()を使用してください。プレフィックス。

これに変数を設定し、それを使用して他のスコープ内のカウントを参照することもできます。例えば:

var self = this;

これに関するスコープの問題は首の痛みになる可能性があり、コールバックでより多くのOOを実行すると発生する可能性があります。早い段階でこれを紹介されたのは良いことなので、今は警戒していることがわかります。

于 2012-11-28T23:30:42.653 に答える