2011-12-04 7 views
2

プロトタイプメソッドのメリットはありますか?Javascript:初期メソッドのプロトタイプへの格納

プロトタイプのメソッドを使用せずにオブジェクトの新しいインスタンスを作成すると、その逆の場合より多くのメモリを消費しますか?

共有コンテキストが必要ない場合、一部の開発者がプロ​​トタイプ内に初期メソッドを格納する理由を理解できません。

私は考えている唯一のものは、メモリ使用量です...

// first one 
function t(){ 
    this.method1=function(){ 

    }; 
    this.method2=function(){ 

    }; 
} 

// second one 
function tt(){ 

} 
tt.prototype={ 
    method1:function(){ 

    } 
    ,method2:function(){ 

    } 
} 

var storage1=[]; 
var storage2=[]; 

var i=0; 
while(i<10000) { 
    storage1.push(new t()); 
    storage2.push(new tt());  
    i++;  
} 

答えて

2

はい、それはメモリのトンを食べ、メモリがどのように複雑な「クラス」は、どのように多くの場合、あなたとのスケールを食べます作成します。これはプロトタイプのメソッドを使用する非常に良い理由であり、 "プライベートメソッド"のメリットよりも大幅に優れています。

"共有されたコンテキストが必要でない"とは何を意味するのか分かりません。

0

最初の方法は、一部の開発者がプライベートプロパティを実現するために使用する反パターンです。通常は、このロジックをメモリに導入するだけでなく、コードに導入することをお勧めします。

関連する問題