时间:2021-05-18
之前看到博客的关于Json对象的深复制方法,即
复制代码 代码如下:
var obj = {
sayName: function() {
alert(this.name);
},
name:'静水渊'
};var cloneObj=JSON.parse(JSON.stringify(obj));cloneObj.sayName();
但这种方式,不能复制属性值是函数的属性,因此改进了方法,以下是具体代码:
复制代码 代码如下:
var obj = {
sayName: function() {
alert(this.name);
},
name:'静水渊'
};
function clone(){
var str,newObj;
str= JSON.stringify(obj, function(key, value) {
return (typeof value == 'function' ? value.toString().replace(/^function(.*)/g, "jsonFunction$1") : value);
});
newObj = JSON.parse(str, function (key, value) {
if (/^jsonFunction(.*)/.test(value)) {
var strFun = '('+value.replace(/^jsonFunction(.*)/, "function$1")+')';
value = eval(strFun);
}
return value;
});
return newObj;
}
var cloneObj=clone(obj);
cloneObj.sayName();
因为还没有全面测试过,欢迎拍砖!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
对象的深拷贝与浅拷贝的区别如下:浅拷贝:仅仅复制对象的引用,而不是对象本身;深拷贝:把复制的对象所引用的全部对象都复制一遍。一.浅拷贝的实现浅拷贝的实现方法比较
UFS2.1全称UniversalFlashStorage2.1,是UFS2.0的改进版,理论最大接口速率为5830.4Mbps。UFS2.1标准(JEDECS
本文实例讲述了PHP实现基于面向对象的mysqli扩展库增删改查操作工具类。分享给大家供大家参考,具体如下:mysqli扩展库是MySQL扩展库的改进版本,在m
在调试的时候,经常需要知道json对象的内容,通过JSON.stringify函数,可以转换json对象为字符串。复制代码代码如下:$(document).re
拉风的jQuery制作的手风琴折叠菜单,效果非常不错!这里是之前版本的改进版,主要是jquery代码改进演示图:main.js$(function(){vart