0

我需要一个函数,它首先获取构造函数,并获取(可变数量的)附加参数作为后面的参数,并从中构造一个对象。

有没有一种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;
}

这是一个正确的解决方案吗?有没有更简单的?

4

1 回答 1

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}
于 2013-10-01T18:38:02.667 回答