我有一個具有各種字段的構造函數對象;舉個簡單的例子,比如說如何將構造函數對象中的方法應用於任意對象
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