未定义,到底是怎么回事啊?

浴火_凤凰 2009-09-10 06:59:00
请看如下代码:

a={};
a.b={};
a.b.c=100;
alert(a.b.c);//100
alert(b.c);//b未定义???怎么会这样?既然b未定义那上面怎么能取到值100呢?真的不明白啊!!!
alert(c);//
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunxing007 2009-09-11
  • 打赏
  • 举报
回复
你这个写法换成json就是
a = {b:{c:100}};
你告诉我哪里定义了b?
sunxing007 2009-09-11
  • 打赏
  • 举报
回复
作用域问题。
a={};//定义global变量a
a.b={};//给a添加属性b
a.b.c=100;//给a.b添加属性c
alert(a.b.c);//100
alert(b.c);//alert相当于window.alert(b.c);在window这个作用域里面没有一个叫做b的属性。
alert(c);//同上
ZhangYaoxing 2009-09-10
  • 打赏
  • 举报
回复
b是未定义,定义的是a.b
浴火_凤凰 2009-09-10
  • 打赏
  • 举报
回复
既然b未定义那上面怎么能取到值100呢?真的不明白啊!!!
BeenZ 2009-09-10
  • 打赏
  • 举报
回复
错了


function a(){
this.b=30;
return this;
}
var x=new a()
alert(x.b);
alert(b)//未定义


BeenZ 2009-09-10
  • 打赏
  • 举报
回复
就相当于

function a(){
var b=30;
}
alert(a.b);

alert(b)//未定义
BeenZ 2009-09-10
  • 打赏
  • 举报
回复
a.b是a的一个成员,名字叫b,a.b.c是a的成员b中的一个成员,名字是c

87,907

社区成员

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

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