作用域问题!

zohu_chneg 2012-09-08 10:07:09
function test() {
test.count++;
a = 10;
}
test.count = 0;

alert(test.a); //为什么这是undefined
alert(test.count); //他是一个静态变量?
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
马肠河 2012-09-08
  • 打赏
  • 举报
回复
如果在函数里面定义一个变量,而且这个变量不用var关键字的话,他其实是一个全局变量,即便是在函数内部已经赋值,还是undefined!
泡泡鱼_ 2012-09-08
  • 打赏
  • 举报
回复
你这test.count = 0;

var iCount=0;
一个性质,所以你看得到输出
"test.a“这个变量不存在,所以undefined
张运领 2012-09-08
  • 打赏
  • 举报
回复
a是私有变量,是不允许外界访问的
test.count如果是在函数之外是静态变量,这个应该是不能在函数之内操作吧?
huijihuiji1 2012-09-08
  • 打赏
  • 举报
回复
我觉得改为数组吧。。
count=0;
var test={"a":"10","count":"count++"}
alert(test.a);
alert(test.count);
马肠河 2012-09-08
  • 打赏
  • 举报
回复
个人认为js的作用域绝对是个很值得探讨的热点,建议楼主看看这个http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html
huijihuiji1 2012-09-08
  • 打赏
  • 举报
回复
function test() {
this.test.count++;
this.a = 10;
}

87,992

社区成员

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

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