【发布时间】:2017-03-01 22:08:36
【问题描述】:
可以使用此方法克隆常规对象:
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 {}
*/
我知道我可以使用另一种方式创建 Date 对象的克隆
b = new Date(a)
但是为什么 Object.assign 和 Object.create 对 Date 类型不起作用?
【问题讨论】:
-
您期望发生什么?您希望复制源 Date 对象的哪些属性?
-
它的所有属性
-
嗯,它正在复制所有 enumerable 和 own 属性。只是 Date 实例没有。
标签: javascript date object clone assign