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

javascript: parameterize constructor and arguments

本文关键字:参数 构造函数 JavaScript      更新时间:2023-09-26

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

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

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

理论上是的,如果您尝试执行下面看到的操作,您的代码应该可以工作 - 但正如其他人所评论的那样,您的最终目标是什么? 不想把这段代码作为注释,但它更像是一个注释而不是一个答案

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}