我想在实例化对象时返回false

时间:2012-05-31 15:02:26

标签: javascript

嗯,这不是一个简单的问题,但在fiddle中,您会看到我正在尝试做的简化版本:

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

var obj = new class; 

在某些条件下将'false'返回给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);

我知道最终结果可以通过为对象创建一个控件属性来实现,但我很好奇,如果有任何模式可以做到更清洁。

1 个答案:

答案 0 :(得分:1)

可能不完全是你所问的,但解决方案可能是使用工厂模式。当然,您必须调用factory方法而不是构造函数。结帐this fidlle