在Javascript中将数组应用于构造函数?

在Javascript中将数组应用于构造函数?,javascript,constructor,apply,Javascript,Constructor,Apply,可能重复: 假设我有这样一个函数: var Foo = function(param1, param2, param3, param4) { ... } 我理解这相当于用以下两种方式来称呼它: Foo(a, b, c, d) Foo.apply(this, [a, b, c, d]) 假设现在我使用函数创建一个对象: var myObject = new Foo(a, b, c, d); 如果我已经在数组[a,b,c,d]中有了参数,我怎么能用新的操作符调用函数,同时也用数组传递参数,

可能重复:

假设我有这样一个函数:

var Foo = function(param1, param2, param3, param4) {
...
}
我理解这相当于用以下两种方式来称呼它:

Foo(a, b, c, d)
Foo.apply(this, [a, b, c, d])
假设现在我使用函数创建一个对象:

var myObject = new Foo(a, b, c, d);
如果我已经在数组[a,b,c,d]中有了参数,我怎么能用新的操作符调用函数,同时也用数组传递参数,就像上面用apply做的那样

考虑到我不能修改Foo的定义,我也不想从[a,b,c,d]中显式提取参数a,b,c,d


谢谢

重复项不是“精确的”(它们过于复杂,而您的问题很简单),基本上,您只需要在调用apply时使用新对象而不是“this”:
var myObject={};Foo.apply(myObject[a,b,c,d])
Foo.apply(this[a,b,c,d])有什么问题。我只是遇到了这个问题,简单地放弃了“new”而改为:var myfoo=Foo.apply(这是[a,b,c,d])