时间:2021-05-26
这篇文章主要介绍了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; }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP对象克隆clone用法。分享给大家供大家参考,具体如下:浅克隆:只是克隆对象中的非对象非资源数据,即对象中属性存储的是对象类型,则会出现克隆
克隆方法是原型设计模式中必须使用的方式,它将返回一个与当前对象数据一致的对象。正如其名,犹如一个模子雕刻而出。克隆类型分为两种:浅克隆、深克隆。1、浅克隆浅克隆
前言我们都知道memberwiseclone会将浅克隆。什么是浅克隆?如何深克隆呢?正文publicclassgood{privategood(){on
引言:在Object基类中,有一个方法叫clone,产生一个前期对象的克隆,克隆对象是原对象的拷贝,由于引用类型的存在,有深克隆和浅克隆之分,若克隆对象中存在引
学生类Student:package克隆clone;/*要克隆必须实现这个借口:Cloneable,以标记这个对象可以克隆Cloneable:此类实现了Clon