7

プライベート メンバーを持つオブジェクトを作成するためのより良い方法を判断するための考慮事項はありますか?

var object = new function () { 
   var private = "private variable";
   return {
       method : function () { 
           ..dosomething with private;
       }
   }
}

VS

var object = function () {
 ...
}();

基本的に、ここで NEW を使用することと、定義した直後に関数を呼び出すことの違いは何ですか?

4

3 に答える 3

9

この演算子により、コンストラクター関数newのように関数が呼び出されます。

以前にそのパターンを見たことがありますが、それを使用するメリットはありません。

演算子の目的はnew、オブジェクト (thisコンストラクター内の値) を作成し、適切[[Prototype]]な内部プロパティを設定して、プロトタイプ チェーンを構築し、継承を実装することです (詳細は[[Construct]]操作で確認できます)。

インライン呼び出しパターンを使用することをお勧めします。

于 2010-04-05T22:37:38.403 に答える
1

このリンクは、インライン呼び出しパターンが優れていることも確認する統計を提供します。

operations per second測定値が高いほど良いことに注意してください

于 2013-10-21T08:29:13.287 に答える
1

関数をイベント ハンドラーとして使用している場合、メモリ リークが発生する可能性があります。記事の一部をご覧ください

于 2010-04-05T22:35:46.223 に答える