通常のオブジェクトが、この方法を用いてクローニングすることができるDateオブジェクトに取り組んでいない:JavaScriptのObject.assignは
a = {x:9}; //sample
b = Object.assign(Object.create(a),a);
console.log(a);
console.log(b);
しかし、Date型の変数はObject.assignとObject.createで動作していないようです。
a = new Date();
b = Object.assign(Object.create(a),a);
console.log(a);
console.log(b);
/*
Results of printing a, b are not the same:
a:
Thu Oct 20 2016 11:17:29 GMT+0700 (SE Asia Standard Time)
b:
Date {}
*/
私は
b = new Date(a)
を使用して別の方法Dateオブジェクトのクローンを作成することができます知っている。しかし、なぜOBJEがありますct.assignとObject.createはDate型で作業していませんか?
あなたは何が起こることを期待していますか?元のDateオブジェクトのどのプロパティをコピーする予定ですか? – Pointy
そのプロパティのすべて – johnlowvale
** ** enumerable *と* own *プロパティのすべてをコピーしています。それは、Dateインスタンスにanyインスタンスがないことだけです。 – Pointy