JavaScript作用域
1、求输出结果
var a = 123;
function Foo(){
var a =456;
function inner(){
console.log(a)
}
return inner
}
result = Foo()
console.log(result())
结果:456

2、求输出结果
Name = 'root';
Age = 18;
function Foo(name,age){
this.Name = name;
this.Age = age;
this.Func = function(){
console.log(this,Name,this.Age);
(function(){
console.log(this.Name,this.Age);
}); //函数
};
}
obj = new Foo('alex',28) //对象
obj.Func()
结果:alex 28 root 18
解析:谁调用函数,谁就是this;第一个结果是obj调用函数,所以this就是obj对象的Name和Age;第二个结果是函数自己执行的,也就是window调用函数,所以this是window全局作用域中的Name,Age。
浙公网安备 33010602011771号