说到 javascript 中的对象拷贝,首先我们想到的是 Object.assign() , JSON.parse(JSON.stringify()) , 还有 ES6 的展开操作符[... ]
因为在...js 中= 运算符 对于对象来说,不能创建副本,只是对该对象的引用
运算符
var x = {
a: 1,
b: 2,
};
y = x;
x.a = 10;
console.log(x);...//{a:10, b:2}
console.log(y); //{a:10, b:2}
所以在进行对象操作时,运算符等于号(=)不可取
Object.assign()
var x = {
a: 1,...}, x);
console.log(x);
/*
[object Object]{
a:1,
b:[object, Object],
d:[object, Object],
d:1
}
*/
使用展开操作符...[... ]
对象字面量的展开操作符目前是 ECMAScript 的第 3 阶段提案, 拷贝对象更加简单了
var x = [
"a",
"b",
"c",
"d",
{