var name = 'laruence';
function echo() {
alert(name);
}
function env() {
var name = 'eve';
echo();
}
env();
答案是多少
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
echo函数自己的作用域没有定义name,所以它调用的上级全局name= 'laruence';如果你在
env函数里再写一个alert(name),那么就是name='eve',因为它本身的作用域定义了name.总之。。这里env函数的作用域是不能影响echo函数的。。
当然是
laruence,在函数定义的时候就定了,如果全局作用域下没有name,无论怎么调用都会报错。函数执行的时候先在自己的作用域查找,没有的话才去上级作用域。
而上级作用域是看他在哪定义的,而不是在哪执行的。
所以会找到上级-> 全局下的 name