JavaScript引用数据的使用和复制

jopen 10年前

JavaScript中的数组等都是以对象形式来存储和引用,就算直接赋值给其他变量,也仅仅是一个地址指向而已,这个毋须多言。工作中,会遇到对数据有添删的操作但又不能破坏原始数据的情况下,对于引用类型的数值想要复制一份,就得采取一些变通的方法。当然不建议对需要多次重复使用的引用数据进行业务算法中添加删除操作,尽量变通,如果对数据有改动,就需要克隆一份独立的数据出来。

JavaScript克隆一份数据出来的好处显而易见,对需要多次调用的原始数据十分安全,操作只针对克隆出来的数据操作,和原始数据没有引用关系,下一次调用原始数据还会保持最原始的状态。

克隆的方式是自己写了一个方法来进行,这是我自己在项目中的处理方式,虽然看起来不雅观,但确实解决了我的很多问题,如果有其他更好的解决方式,我也很希望拓宽自己的思路。

以下是克隆的代码分享:

function mclone(mObj){    if(typeof(mObj) != 'object')     return mObj;    if(mObj == null)     return null;    var mNewObj = new Array();    for(var i in mObj){        mNewObj[i] = mclone(mObj[i]);    }   return mNewObj;   }