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

Javascript 我想在实例化对象时返回false,javascript,Javascript,好吧,这不是一个简单的问题,但在下面的例子中,你会看到我试图做的事情的简化版本: 我想实例化一个对象,执行初始化该对象所需的所有操作,但我需要以下语句: var obj = new class; 在给定某些条件的情况下,将“false”返回给obj 下面是代码: var cl = function(id){ this.init(id); if(this.id > 5){ return false; } }; cl.prototype = {

好吧,这不是一个简单的问题,但在下面的例子中,你会看到我试图做的事情的简化版本:

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

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);
var cl=函数(id){
这个.init(id);
如果(此id>5){
返回false;
}
};
cl.原型={
初始化:函数(id){
this.id=id;
}
}
var-arr=[];
对于(i=0;i<10;i++){
var obj=新的cl(i);
如果(obj){
方位推力(obj);
}
}
控制台日志(arr);

我知道最终的结果可以通过为对象创建控件属性来实现,但我很好奇是否有任何模式可以实现此清理。

可能不是您所要求的,但解决方案可能是使用factory模式。当然,您必须调用
工厂
方法,而不是构造函数。签出

除了使用
new
时创建的对象外,不能返回任何内容。因此,我将抛出新错误(“无效id”)并中止操作。您也可以返回其他对象(null是一个值,尽管typeof null是object),其他返回的所有内容都将被忽略。顺便说一句;这不是工厂模式的预期用途。。。但它确实有效,并且确实为您创建了一个对象或布尔值。如果成功了,那他妈的是什么;)谢谢,这也不是我一直在寻找的,但cudos为我提供了一个有效的选择