构造函数等效于Function.prototype.apply()

时间:2015-01-25 02:00:31

标签: javascript node.js

我正在尝试创建一个接收任意数量参数的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);
}

周围有什么办法吗?

0 个答案:

没有答案