fun的a属性怎么调用?
<script type="text/javascript">
function fun(){
var a=1;
function fun2(){
var a=2;
console.log();
}
fun2();
}
function sayHello(){
console.log(arguments[0], arguments[1], arguments[2]);
}
sayHello('Bob', 'Jack', 'Rose');// Bob Jack Rose
</script>
不能。因为外层作用域的同名变量名会被 覆盖(shadowed variable) 。你需要换一个名字。
在内层函数引用外层函数的变量的值的需求是常有的事,外层作用域的同名变量名会被 覆盖(shadowed variable) 是肯定会发生的事,常用的解决方案是使用函数的参数来传递数据。
在Javascipt的最新的标准中,子类对父类的继承时,引用父类的属性或者是调用父类的方法时,使用super这个关键字。这个方法的注意事项是浏览器的支持情况是有限制的,要了解浏览器的产品与版本。IE目前是不支持super的。我个人的看法尽量不使用这样的新的语法特性。因为不利于浏览器的兼容性。
定义一个全局变量