<script>
// 浅克隆函数
function shallowClone(o) {
var obj = {};
for(var i in o) {
obj = o;
}
return obj;
}
// 被克隆对象
var oldObj = {
a: 1,
b: ['e', 'f', 'g'],
c: {
h: {
i: 2
}
}
};
var newObj = shallowClone(oldObj);
console.log(newObj.c.h, oldObj.c.h); // { i: 2 } { i: 2 }
console.log(oldObj.c.h === newObj.c.h); // true
</script>
<script>
// 浅克隆函数
function shallowClone(o) {
var obj = {};
for(var i in o) {
obj = o;
}
return obj;
}
var oldObj = {
a: 1,
b: ['e', 'f', 'g'],
c: {
h: {
i: 2
}
}
};
var newObj = JSON.parse(JSON.stringify(oldObj)); // 将oldObj先序列化再反序列化。
console.log(newObj.c.h, oldObj.c.h); // { i: 2 } { i: 2 }
console.log(oldObj.c.h === newObj.c.h); // false 这时候就已经不一样了
</script>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |