闭包
1.变量的作用域
2.如何从外部读取局部变量?
3.概念?
4.用途?可以读取函数内部的变量;让这些变量的值始终保持在内存中。
5. 练习?
代码片段一。
var name = "The Window";
var object = {
name : "My Object",getNameFunc : function(){
return function(){
return this.name;
};}
};
alert(object.getNameFunc()());
解释:结果为The Window,原因:this对象在运行时是基于函数的执行环境绑定的,匿名函数的执行环境具有全局性,因为this指向window。
代码片段二。
var name = "The Window";
var object = {
name : "My Object",getNameFunc : function(){
var that = this;
return function(){
return that.name;
};}
};
alert(object.getNameFunc()());
解释:结果为My Object,原因:that在运行时指向其父函数的作用域,父函数的作用域中name为对象object的。