首页 新闻 会员 周边 捐助

Javascript 作用域的问题

0
[已解决问题] 解决于 2015-12-15 08:49

var color;
function SetColor(color){
color="red";
}
SetColor(color);
alert(color);

输出的是undefined ,为什么?和。net中的怎么不一样?

mengxuef的主页 mengxuef | 菜鸟二级 | 园豆:206
提问于:2015-12-13 19:57
< >
分享
最佳答案
0

如果我没有记错的话,应该是这样的:

首先理解var color;//这是声明一个变量(变量的定义define在赋值的时候生效)

接着,你调用SetColor(color);//把外部color传进了函数(实参到形参的传递)

形参color在函数内部改变了,但是形参不会影响到外部的实参color。

所以,当你alert(color);//的时候,是在对没有赋值的外部color,也就是实参进行。

所以,此时是undefined。

are u ok?

奖励园豆:5
[0] | 小虾三级 |园豆:1257 | 2015-12-13 21:04

非常感谢,是外面的变量color和函数的变量color,我理解的不够透彻。

mengxuef | 园豆:206 (菜鸟二级) | 2015-12-13 21:56
其他回答(1)
0

你把fun SetColor(color)改成fun SetColor(),在细细体会一下。

即使在.net里也这样体会一下..

米修君 | 园豆:553 (小虾三级) | 2015-12-13 20:25

多谢你的解答。

支持(0) 反对(0) mengxuef | 园豆:206 (菜鸟二级) | 2015-12-13 22:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册