Regular objects can be cloned using this method:
a = {x:9}; //sample
b = Object.assign(Object.create(a),a);
console.log(a);
console.log(b);
However, the variables of Date type don't seem to work with Object.assign and 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 {}
*/
I know I can create a clone of Date object another way using
b = new Date(a)
But why are Object.assign and Object.create not working on Date type?
The Object.assign()
method copies over the enumerable and own properties of the source object. A Date instance doesn't really have any of those (if you don't add any with your own code).
In particular, Date "properties" like the year, month, date, etc. aren't properties in the JavaScript sense. They're values that can be retrieved via the API. That doesn't make them properties.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With