我正在尝试创建一个接收任意数量参数的Object构造函数。
将数组中的值应用于构造函数会很方便,就像'apply()'方法对函数一样方便,但是如果我试试这个:
var arr = [1,2,3];
var a = new Obj.apply(null, arr);
抛出:TypeError: function apply() { [native code] } is not a constructor
这也很方便,所以我可以使用'new'关键字可选,例如:
function Obj() {
if (!(this instanceof)) {
return new Obj.apply(arguments);
}
this.a = arguments[0];
this.b = arguments[1];
this.allArr = Array.prototype.slice.call(arguments);
}
周围有什么办法吗?