相思资源网 Design By www.200059.com
这篇文章主要介绍了javascript浅层克隆、深度克隆对比及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、浅层克隆, (引用值改变, 两个都一起变)
var obj = { name : 'xiaoming', age : 12, children : ['mimi','lili','rokey'] } var obj2 = {}; function clone(origin, target) { var target = target || {}; for(var prop in origin) { target[prop] = origin[prop]; } return target; } clone(obj, obj2);
2、深度克隆 (只考虑数组和对象)
(1)判断是不是原始值
(2)判断是数组还是对象 Object.prototype.toString.call([]) = '[object Array]' Object.prototype.toString.call({}) = '[object Object]'
(3)建立相应的数组和对象
(4)递归
function deepClone(origin, target) { var target = target || {}, toStr = Object.prototype.toString, arrStr = '[object Array]'; for(var prop in origin) { if(origin.hasOwnProperty(prop)) { //判断是不是对象自带的属性 if(origin[prop] !== 'null' && typeof(origin[prop]) == 'object') { if(toStr.call(origin[prop]) == arrStr) { target[prop] = []; }else { target[prop] = {}; } deepClone(origin[prop], target[prop]); }else { target[prop] = origin[prop]; } } } return target; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无javascript浅层克隆、深度克隆对比及实例解析的评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。