(function(){
//这里是块级作用域
})()
|
(function(){
for(var i=0;i<5;i++){
alert(i);//0,1,2,3,4
}
})();
alert(i);//error
|
function MyObject(){
//私有变量和私有函数
var privateVariable = 10;
function privateFunction(){
return false;
}
//特权方法,特权方法作为闭包有权访问在构造函数中定义的所有变量和函数
this.publicMethod = function (){
privateVariable++;
return privateFunction();
};
}
var obj = new MyObject();
obj.publicMethod();//
|
(function(){
//私有变量和私有函数
var privateVariable = 10;
function privateFunction(){
return false;
}
//构造函数
MyObject = function(){
};
//公有/特权方法
MyObject.prototype.publicMethod = function(){
privateVariable++;
return privateFunction();
};
})();
|
|
|
模块模式:
var singleton = function(){
//私有变量和私有函数
var privateVariable = 10;
function privateFunction(){
return false;
}
//特权/公有方法和属性
return {
publicProperty: true,
publicMethod : function(){
privateVariable++;
return privateFunction();
}
};
}();
|