0

まあ、これは簡単な質問ではありませんが、フィドルでは、私がやろうとしていることの簡略化されたバージョンが表示されます。

オブジェクトをインスタンス化し、初期化するために必要なすべての操作を実行したいのですが、次のステートメントが必要です。

var obj = new class; 

いくつかの条件が与えられた場合、objに「false」を返します。

とにかくここにコードがあります:

var cl = function(id){
   this.init(id);
   if(this.id > 5){
       return false;
   }
};


cl.prototype = {
    init: function(id){
        this.id = id;                        

    }
}

var arr = [];

for(i = 0; i < 10; i++){
    var obj = new cl(i);
    if(obj){
         arr.push(obj);
    }
}

console.log(arr);

オブジェクトにコントロールプロパティを作成することで最終結果を達成できることは知っていますが、このクリーナーを実行するためのパターンがあるかどうか知りたいです。

4

1 に答える 1

1

あなたが尋ねたものとは正確ではないかもしれませんが、解決策はファクトリパターンを使用することです。もちろんfactory、コンストラクターの代わりにメソッドを呼び出す必要があります。このフィドルをチェックアウト

于 2012-05-31T15:22:31.030 に答える