JavaScriptの完全なクローンオブジェクト
2244 ワード
完全なクローンオブジェクト
対象を完全にクローンしたいなら、対象のプロトタイプの属性もコピーしなければなりません.次のような書き方ができます.
対象を完全にクローンしたいなら、対象のプロトタイプの属性もコピーしなければなりません.次のような書き方ができます.
//
const clone1 = {
__proto__: Object.getPrototypeOf(obj),
...obj
};
//
const clone2 = Object.assign(
Object.create(Object.getPrototypeOf(obj)),
obj
);
//
const clone3 = Object.create(
Object.getPrototypeOf(obj),
Object.getOwnPropertyDescriptors(obj)
)
上のコードの中で、書き方は一の__uプロト.属性はブラウザ以外の環境では必ずしも展開されないので、書き方二と書き方三をオススメします.(es 6オブジェクトの拡張:ソースアドレス:http://es6.ruanyifeng.com/#docs/object)