Python深拷贝和浅拷贝(浅拷贝)
导读:// 原数据 let y = { name: zhangsan...
// 原数据
let y = {
name: zhangsan,
age: 18,
// 原数据中的子对象
language: [1, [2, 3], [4, 5]],
};
// ish" target="_blank">创建第二个对象 把原数据赋值给它
let f = y;
// 创建对象 对 元数据 进行拷贝
let c = shallowCopy(y);
// 开始进行拷贝
function shallowCopy(this) {
// 创建对象
let dst = {};
// 将每个数据都给到 dst 变量
for (let i in this) {
dst[i] = this[i];
}
return dst;
}
// 改变赋值中的 name 会改变原始数据
f.name = "lisi";
// 浅拷贝的改变只会让自己的数据发生变化
c.age = "20";
// 改变原数据赋值的变量 也会改变原数据
f.language[1] = ["二", "三"];
// 浅拷贝只是复制一层对象,不包括里面的对象 所以会使 原数据发生变化
c.language[2] = ["四", "五"];
// 原始数据
console.log(y);
//y = {
// name : lisi,
// age : 18,
// language : [1,["二","三"],["四","五"]],
//};
// 赋值操作得到的
console.log(f);
//f = {
// name : lisi,
// age : 18,
// language : [1,["二","三"],["四","五"]],
//};
// 浅拷贝得到的
console.log(c);
//c = {
// name : zhangsan,
// age : 20,
// language : [1,["二","三"],["四","五"]],
//};
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!