dat*_*uoc 3 javascript clone date object assign
可以使用此方法克隆常规对象:
a = {x:9}; //sample
b = Object.assign(Object.create(a),a);
console.log(a);
console.log(b);
Run Code Online (Sandbox Code Playgroud)
但是,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 {}
*/
Run Code Online (Sandbox Code Playgroud)
我知道我可以用另一种方式创建Date对象的克隆
b = new Date(a)
Run Code Online (Sandbox Code Playgroud)
但是为什么Object.assign和Object.create不能在Date类型上工作?
该Object.assign()方法复制源对象的可枚举和自己的属性.Date实例实际上并不具有任何这些(如果您不使用自己的代码添加任何实例).
特别是,年,月,日等日期"属性"不是JavaScript意义上的属性.它们是可以通过API检索的值.这不会成为他们的财产.
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |