5

JavaScriptのプロトタイプ化されたメソッドとプロトタイプ化されていないメソッドの違いは何ですか?どんな助けでも深く感謝します。

4

1 に答える 1

10

プロトタイプ化されていないメソッドは、クラスのすべてのインスタンスでメモリを消費します。

また、(クラスコンストラクターのスコープで宣言されていると仮定して)そのスコープで宣言されている他のプライベート変数(またはメソッド)にアクセスできます。

たとえば、これによりオブジェクトごとに関数のインスタンスが作成され、その関数は以下にアクセスできますmyVar

function MyObject() {
     var myVar;
     this.func = function() { ... };
};

この場合、オブジェクトのすべてのインスタンス間で共有される関数のインスタンスは1つだけですが、以下にアクセスすることはできませんmyVar

function MyObject() {
     var myVar;
};

MyObject.prototype.func = function() { ... };
于 2012-05-22T15:19:25.710 に答える