0

JavaScript でオブジェクトを作成するとき、 で変更されない定数とvar = 'sjdksjka';、 でオブジェクトに対して変更されるものを設定していることに気付きますthis.x = 0;

いつ使用するのが最適ですか

function a() {
    var b = 0; // var =
      this.c = 0; // this.
}

どこで、いつどちらを選択する必要がありますか?

4

2 に答える 2

1

var変数を関数スコープ内に固定します。実行がa()終了すると、変数bは破棄されます。

 a()
 console.log(b) //will print "undefined"

this.cオブジェクトプロパティを作成します。これはa()、オブジェクトコンストラクターとして使用する場合です。

 d=new a()
 console.log(a.c) //will print 0
 console.log(b)   //will print "undefined"
 console.log(a.b) //will print "undefined"

a別のコンストラクターのメンバー関数として(を介して.prototype.)設定した場合にも機能します

于 2013-02-25T09:12:10.063 に答える
1

最初のものは関数スコープ内にあり、関数自体の内部でのみ表示されます。2 つ目は、関数が呼び出されるオブジェクトにバインドされます。このケースは、関数がオブジェクトのメンバーであり、オブジェクト自体を変更する場合にのみ役立ちます。最初のバリアントは、関数呼び出し中の一時的な結果に使用されます。

于 2013-02-25T09:06:55.047 に答える