给出一个像这样的函数/类型声明:
function Person(name, ... other args ...){
this.name
... other init code ...
}
我希望能够调用Person构造函数,并将一个参数数组应用于它。我能做到:
Person.apply(this, args)
除了这不会实例化一个人,它只是将其称为一个函数。你有没有办法以这种方式称呼它,但在“新”语境中,即表现如下:
new Person(...)
答案 0 :(得分:1)
原因:
var newInstance=Person.apply({}, args);
您将构造函数应用于空对象。但是你应该意识到这不是真正的类实例。如果你想打赌类的实例,你应该把原型对象的克隆作为第一个参数。
答案 1 :(得分:1)
关于这个before,有一个相当冗长的来回。
简而言之,不,你不能这样做并让它适用于所有情况。有一些非常有价值的代码示例说明了如何在该链接中完成它,但每个示例都有一个中断的情况。但是,对你来说这可能已经足够了。
答案 2 :(得分:0)