例子:
var foo=(function (){
var str ='woshishuaige';
return {
get_str:function()
{
return str
},
new_str:function(new_str){
return new_str
}
}())
foo.get_str () //得到'woshshuaige'
foo.new_str ('woshshuaige2')通过函数接口,我们访问并修改了变量
foo.get_secret (); // 得到 'woshshuaige2'
之所以可能通过这种方式在 JavaScript 种实现公有私有,特权变量正是因为闭包,闭包是指在 JavaScript 中,内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
需要注意的一点时,内部函数访问的是被创建的内部变量本身,而不是它的拷贝。需要注意的一点时,内部函数访问的是被创建的内部变量本身,而不是它的拷贝。
闭包是 JavaScript 一个非常重要的特性,这意味着当前作用域总是能够访问外部作用域中的变量。 因为 函数 是 JavaScript 中唯一拥有自身作用域的结构,因此闭包的创建依赖于函数