Object.prototype.clone = function (obj) {
//将obj对象内容克隆到一个空对象 返回这个新的对象
return Object.assign({}, obj);
};
let a = {
name: 'abc',
getName: () => {
var name = 'jack';
return 'My name is ' + name + a.name;
},
};
let b = Object.clone(a);
let c = a;
// let c = JSON.parse(JSON.stringify(a)); 一般克隆用JSON就够了(不适用于有方法的对象)
console.log(Object.prototype === a.__proto__);
console.log(b === a);
// c===a 意味着修改c的时候 a也被修改
console.log(c === a);
console.log(b.name);
console.log(b.getName());
执行结果:
true
false
true
abc
My name is jackabc
对象克隆的意义:不会影响原来的对象