说到 javascript 中的对象拷贝,首先我们想到的是 Object.assign() , JSON.parse(JSON.stringify()) , 还有 ES6 的展开操作符[... ]
因为在...js 中= 运算符 对于对象来说,不能创建副本,只是对该对象的引用
运算符
var x = {
a: 1,
b: 2,
};
y = x;
x.a = 10;
console.log(x);...Object.assign() 还需要注意的一点是,原型链上属性的不可枚举对象是无法复制的,看一下代码:
var x = {
a: 1,
};
var y = Object.create(x, {...}, x);
console.log(x);
/*
[object Object]{
a:1,
b:[object, Object],
d:[object, Object],
d:1
}
*/
使用展开操作符...[... ]
对象字面量的展开操作符目前是 ECMAScript 的第 3 阶段提案, 拷贝对象更加简单了
var x = [
"a",
"b",
"c",
"d",
{