JS 浅层複製 与 深层複製 DAY60

浅层複製 ( shallow copy )

for in 写法

// 浅层複製var family = {    home: '小黑家',    members:{        mom: '老妈',        father: '老爸',        black: '小黑',    }}var newFamily = {};for(var key in family){    console.log(key); // home members (family第一层属性)    newFamily[key] = family[key];}console.log(newFamily,family);// 修改第一层属性 newFamily.home = '大雄家';console.log(newFamily,family); // 大雄家 小黑家console.log(newFamily === family); // false// 修改第二层属性newFamily.members.black = '大黑';console.log(newFamily,family); // 大黑 大黑console.log(newFamily === family); // false// 且会发现 两个同时都会改 所以只能做到第一层的複製

jQuery 写法

var newFamily2 = jQuery.extend({},family);

ES6 写法

var newFamily3 = Object.assign({},family);

深层複製(deep copy)
透过 JSON.stringify 先转字串 再透过 JSON.parse 转成物件

var family = {    home: '小黑家',    members:{        mom: '老妈',        father: '老爸',        black: '小黑',    }}var newFamily4 = JSON.parse(JSON.stringify(family));newFamily4.home = '小白家';newFamily4.members.black = '大黑';console.log(family,newFamily4); // 小黑家 小黑 , 小白家 大黑console.log(family === newFamily4); // false

那今天的介绍就到这里
若有任何问题 或 内容有误
都可以跟我说唷http://img2.58codes.com/2024/emoticon41.gif


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章