我有一个具有各种字段的构造函数对象;举个简单的例子,比如说如何将构造函数对象中的方法应用于任意对象
function Person(id, name) {
this.id = id;
this.name = name;
etc.
this.someFunction = function(xxx) {...}
}
现在,我有一个任意的对象与标识和名称字段
var somePerson = {id:123, name:"joe"}
我想从somePerson实例数据注入到一个人的构造函数,所以我可以应用Person类中的所有方法,但我在apply,call和bind之间感到困惑。
我知道我可以调用一个新的构造函数传递所有的字段,但是有很多字段。是否有任何简单的方法来赋予somePerson实例与Person类中的方法?
您的意思是否变种P = Object.assign(新的Person(),somePerson) –
可以省略括号,如果你不打算提供参数。 –
该解决方案的问题在于,它不适用于*需要*参数的构造函数。我建议总是使用一个特定于类的辅助方法,比如'Person.fromJSON'(它知道如何/是否调用它的构造函数)。 – Bergi