闭包:
实现一个暴露内部变量,而且外部可以访问修改的函数;
闭包的作用:
匿名自执行函数、缓存、实现封装(主要作用)、实现面向对象中的对象;
var person = function(){
//变量作用域为函数内部,外部无法访问
var name = "default";
return {
getName : function(){
return name;
},
setName : function(newName){
name = newName;
}
}
}();
print(person.name);//直接访问,结果为undefined
print(person.getName());
person.setName("a");
print(person.getName());
//得到结果如下:
undefined
default
a