// 【闭包简单实例(模板)】
// 声明闭包名称ClosureName
var ClosureName = (function () {
// 声明并定义内部的私有变量
var privateVar = 0;
// 声明并定义内部的私有方法
function f1(x){
// 对私有变量的操作
privateVar++;
// 输出以查看私有变量,以及函数实参的结果
console.log("privateVar: "+ privateVar + "\n" + "function parameter: " + x);
}
function f2(x){
// 对私有变量的操作
privateVar--;
// 输出以查看私有变量,以及函数实参的结果
console.log("privateVar: "+ privateVar + "\n" + "function parameter: " + x);
}
// 返回Object中,按“闭包函数名:私有方法名”的规则,定义返回的对象
return{
ClosureFunc1:f1,
ClosureFunc2:f2
}
})();
【调用闭包】
ClosureName.ClosureFunc1(“function parameter”)
输出结果:
privateVar: 1
function parameter: function parameter
外部若有同名的privateVar变量, f1, f2函数,都互不影响。
这样一来,真正做到了“闭包”,闭包内部的私有变量,私有函数,对外都是不可见的。在写plug-in时,完美解决了和已有代码的变量和函数重名的问题。