您的位置:首页 > Web前端 > JavaScript

关于Jsion集合赋值对象问题

2011-03-01 09:17 253 查看
<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是新的属性,内存新开的变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐