//值传递 var i = 3; var j = i; j = 4; document.write(i);//3 //引用传递 var m = [1]; var n = m; n[0] = 2; document.write(n[0]);//2
//深度拷贝函数,其实就是值传递
function cloneObject(srcobj){
var tarobj=new Object();
for(var key in srcobj){//判断对象中是否继续为对象
tarobj[key]=typeof srcobj[key]==='object'?cloneObject(srcobj[key]):srcobj[key];
}
return tarobj;
}
//验证深度拷贝函数的使用
// 测试用例:
var srcObj = {
a: 1,
b: {
b1: ["hello", "hi"],
b2: "JavaScript"
}
};
var abObj = srcObj;//引用传递
var tarObj = cloneObject(srcObj);
srcObj.a = 2;
srcObj.b.b1[0] = "Hello";
console.log(abObj.a);//2
console.log(abObj.b.b1[0]);//Hello,说明普通的=是一种引用传递
console.log(tarObj.a); // 1
console.log(tarObj.b.b1[0]); // "hello",说明我们定义的深拷贝是值传递
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有