私は間違ったことをする必要があります。新しいVARとしてES6更新されたクローンプロパティがオリジナルに影響しないようにする方法は?
-
名前のボブなど
- インスタンス化のPersonクラスのボブ
- クローンボブがアリス
- 名前の名前の変更アリスアリスボブ&アリス
の
class Person {
constructor(attr) {
this.attr = attr;
}
talk() {
console.log('My name is ' + this.attr.name);
}
}
function clone(obj) {
return Object.assign(Object.create(Object.getPrototypeOf(obj)), obj);
}
var Bob = new Person({
name: 'Bob'
});
var Alice = clone(Bob);
Alice.attr.name = 'Alice';
Alice.talk();
Bob.talk();
感謝。
オブジェクトをクローニングする方法は? – Intervalia
あなたは 'Bob 'だけをクローンしました。あなたは 'attr'オブジェクトを複製しませんでした。ネストされたオブジェクトではなく、オブジェクト自体に値を格納してください! – Bergi