关于Jsion集合赋值对象问题

    技术2022-05-20  47

    <textarea name="code" class="javascript" cols="50" rows="15"> 1. var A={a:0,b:1}; 2. var B=A; 3. document.write(B.a);//0 4. A.a=1; 5. document.write(B.a);//1 6. 这种情况,好像给我们平时其他编程语言的获取的结果有点差异这种赋值情况 7. 其实是Js的指针指向 并非创建新的变量. 8. 所以改谁的变体都一样见于上面情况,开创新的变量 9. 有以下2中情况 10. 1:大家sx的情况 function cloneObject(obj) { var clone = {}; for(var i in obj) { if(typeof(obj[i])=="object") clone[i] = cloneObject(obj[i]); else clone[i] = obj[i]; } return clone; } 13. 2:这种情况 14. var vv=[1,2,3]; 15. var dd=[]; 16. dd.push({a:vv}); 17. vv=[4,5,6]; 18. alert(dd[0].a);//1,2,3 19. alert(vv);//4,5,6 20. 这是我无意发现的情况我想应该是dd.[0].a是新的属性,内存新开的变量 var A={a:0,b:1}; var B=A; document.write(B.a);//0 A.a=1; document.write(B.a);//1 这种情况,好像给我们平时其他编程语言的获取的结果有点差异这种赋值情况 其实是Js的指针指向 并非创建新的变量. 所以改谁的变体都一样见于上面情况,开创新的变量 有以下2中情况 1:大家sx的情况 cloneObject: function cloneObject(obj) { var clone = {}; for(var i in obj) { if(typeof(obj[i])=="object") clone[i] = cloneObject(obj[i]); else clone[i] = obj[i]; } return clone; } 2:这种情况 var vv=[1,2,3]; var dd=[]; dd.push({a:vv}); vv=[4,5,6]; alert(dd[0].a);//1,2,3 alert(vv);//4,5,6 这是我无意发现的情况我想应该是dd.[0].a是新的属性,内存新开的变量


    最新回复(0)