私はさまざまなフィールドを持つコンストラクタオブジェクトを持っています。簡単な例では、今コンストラクタオブジェクトから任意のオブジェクトにメソッドを適用する方法
function Person(id, name) {
this.id = id;
this.name = name;
etc.
this.someFunction = function(xxx) {...}
}
を言って、私はidとnameフィールドに任意のオブジェクトを持って
var somePerson = {id:123, name:"joe"}
私は、人のコンストラクタにsomePersonインスタンスからのデータを挿入したいです私はPersonクラスからすべてのメソッドを適用できますが、適用、呼び出し、およびバインドの間で混乱します。
すべてのフィールドを渡す新しいコンストラクタを呼び出すことができますが、多くのフィールドがあります。 SomePersonインスタンスにPersonクラスのメソッドを与えるだけの簡単な方法はありますか?
あなたは引数を指定するつもりはない場合は、括弧を省略でき –
のvar P = Object.assign(新しい人()、somePerson)を意味しました。 –
このソリューションの問題点は、引数を必要とするコンストラクタでは機能しないことです。 'Person.fromJSON'(コンストラクタの呼び出し方法を知っている)など、クラス固有のヘルパーメソッドを常に使用することをお勧めします。 – Bergi