0

好吧,这不是一个简单的问题,但在小提琴中你会看到我正在尝试做的事情的简化版本:

我想实例化一个对象,执行初始化它所需的所有操作,但我想要以下语句:

var obj = new class; 

在某些条件下将“假”返回给 obj。

无论如何,这是代码:

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 回答