日期:2014-05-16  浏览次数:20348 次

求教关于作用域的问题
var authorName="山边小溪";
function doSomething(){
var blogName="梦想天空";
function innerSay(){
alert(blogName);
}
innerSay();
}
alert(authorName); //山边小溪
alert(blogName); //脚本错误
doSomething(); //梦想天空
innerSay() //脚本错误


这段代码刚从晚上看到的
请教下innerSay() //脚本错误 为什么会出现错误啊?
doSomething(); //梦想天空 为什么又能正确输出结果呢?

想了半天没绕过来


不是里面的可以访问外面的变量,而外面的访问不了里面的吗?

------解决方案--------------------
函数里面定义的变量只作用当前函数。。
------解决方案--------------------
JScript code
<script type="text/javascript">
var authorName="山边小溪";
function doSomething(){
var blogName="梦想天空";
function innerSay(){
alert(blogName);
}
innerSay();
}
alert(authorName); //山边小溪
alert(blogName); //脚本错误      blogName是在doSomething里定义的局部变量,这里不能使用
doSomething(); //梦想天空
innerSay() //脚本错误      innerSay()在doSomething里定义的局部函数,这里不能使用
</script>