var name = 'laruence';
function echo() {
alert(name);
}
function env() {
var name = 'eve';
echo();
}
env();
答案是多少
var name = 'laruence';
function echo() {
alert(name);
}
function env() {
var name = 'eve';
echo();
}
env();
答案是多少
laruence
函数执行的时候先在自己的作用域查找,没有的话才去上级作用域。
而上级作用域是看他在哪定义的,而不是在哪执行的。
所以会找到上级-> 全局下的 name
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
echo
函数自己的作用域没有定义name
,所以它调用的上级全局name= 'laruence'
;如果你在
env
函数里再写一个alert(name)
,那么就是name='eve'
,因为它本身的作用域定义了name
.总之。。这里env函数的作用域是不能影响echo函数的。。