我需要一个函数,它将构造函数作为第一个和(可变数量的)附加参数作为以下参数获取,并从中构造一个对象。
有没有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;
}
这是正确的解决方案吗?是否有更简单的东西?
答案 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}