没有弄清楚load对象是怎么添加到a对象里面去的

蕲雁 2012-10-11 12:08:14
大家好,我没有弄清楚这段代码里,load对象是怎么添加到a对象里面去的,希望高手指点一下.


var a = {
init: function(){
return 'a';
}
},
b = a;

if(b['load'] == undefined) b['load'] = {};
b = b['load'];

console.log(a);
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
蕲雁 2012-10-11
  • 打赏
  • 举报
回复
呵呵,明白了,自己想把代码看复杂了,其实在这一步if(b['load'] == undefined) b['load'] = {};就相当于a['load']={};了,与下面的b = b['load']无关.
多谢crying_boy和xzy21com了.
scscms太阳光 2012-10-11
  • 打赏
  • 举报
回复
<script type="text/javascript">
var a = {};
var b = a;//相互鬼上身附体
a['c']={};
console.log(b); //Object { c={...}}
b['a']={};
console.log(a); //Object { c={...}, a={...}}
</script>
蕲雁 2012-10-11
  • 打赏
  • 举报
回复
呵呵,你没有说清楚,你代码里面b.a == 1没错,但是我想问的是a['load']是怎么来的?
泡泡鱼_ 2012-10-11
  • 打赏
  • 举报
回复
不是写得很清楚么?
var a = {
init: function(){
return 'a';
}
},
//上面定义了一个a
b = a;//将a赋予b。
//你想明白的就是下面这句了
//b['load'] == undefined如果b中不存在load,那么b['load']={};你上面的是建了一个空对象。我这里加多了个属性a:'1'
if(b['load'] == undefined) b['load'] = {a:'1'};
b = b['load'];//又把b['load']指回b了

alert(b.a);//因为b['load'] = {a:'1'};所以,这里弹出'1'

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧