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。