javascript:参数化构造函数和参数

时间:2013-10-01 18:16:00

标签: javascript

我需要一个函数,它将构造函数作为第一个和(可变数量的)附加参数作为以下参数获取,并从中构造一个对象。

有没有javascript方式来做到这一点?我创建了以下内容,但我绝不是一个javascript专家,也不确定它是否与我想要的相同。

function make_object() {
    var args = Array.prototype.slice.call(arguments);
    var f = args.shift();
    var obj = Object.create(f.prototype);
    f.apply(obj, args);
    return obj;
}

这是正确的解决方案吗?是否有更简单的东西?

1 个答案:

答案 0 :(得分:0)

理论上是的,如果您尝试按照以下方式执行操作,您的代码应该可以正常工作 - 但是正如其他人已经评论过您的最终目标是什么?不想把这段代码作为评论,但它更多的是评论而不是答案

function make_object() {
        var args = Array.prototype.slice.call(arguments);
        var f = args.shift();
        var obj = Object.create(f.prototype);
        f.apply(obj, args);
        return obj;
    }

    function Person(color, occupation) {
         this.eyes = color
         this.occupation = occupation
    }

    Person.prototype = {
             "homosapien":true
    }

var me = new make_object(Person, 'brown', 'developer');
console.log(me) // logs Object { eyes="brown", occupation="developer", homosapien=true}