Object.assign対オブジェクトのスプレッドは:
大部分のオブジェクトのリセットの場合と同じように動作普及、主な違いは、ある Object.assign()はそれらを設定しながら、スプレッドはプロパティを定義します。これはObject.assign()がセッターをトリガーすることを意味します。
主な違いは、それがあるObject.assign
プロパティを設定する際にトリガーsetter
:
Object.assign(
{
set a(v) { this.b = v },
b: 2
},
{ a: 4 }
)
// { b: 4 }
{
...{
set a(v){ this.b = v },
b:2
},
...{ a: 4 }
}
// { a: 4, b: 2 }
PS:上記のセッター/ゲッターは使用して、文字通りの言い回しでObject.defineProperty()
定義された同じ。アクセスは、このセクションを属性- 、P141は「JavaScriptの高度なプログラミング」を参照してください。