本文共 980 字,大约阅读时间需要 3 分钟。
var obj = { }; //obj变量保存在栈里面,而对象{ }存储在堆里面
1.浅拷贝赋值的区别
深拷贝写法:
var person = { name:'你好', hobby:['学习',['可爱','活泼'],'向上'], date : new RegExp('\\w+'), function(){ }}function deepClone(obj){ var cloneObj = new obj.constructor(); if(obj == null) return obj; if(obj instanceof Date) return new Date(obj); if(obj instanceof RegExp) return new RegExp(obj); if(typeof obj !== 'object') return obj; for(var i in obj){ if(obj.hasOwnProperty(i)){ cloneObj[i] = deepClone(obj[i]) } } return cloneObj}var person1 = deepClone(person);console.log(person1);
浅拷贝的实现方式:
Object.assign()...concatlodash clone
深拷贝实现方式:
$.extenddeepClone
转载地址:http://much.baihongyu.com/