javascript 闭包是一个很有趣的东东。看了些相关资料//www.Vevb.com/article/29472.htm,对其印象最深刻的是:实现了public 和private。
创建一个非匿名闭包最简单的语法是:
代码如下:
var obj = (function(){//各种代码 });
闭包最经典的例子:
代码如下:
var makeCounter = (function () {
var i = 1;
this.test=function(){
console.log(i);
i++;
}
return this;
});
var obj = makeCounter();
obj.test(); // 1
obj.test(); // 2
var obj1 = makeCounter();
obj1.test(); // 1
obj1.test(); // 2
private 与 public :
代码如下:
var makeCounter= (function () {
var i = 1;
//这货是private的
function log(){
console.log(i);
i++;
}
//这货是public的
this.test(){
log();
}
return this;
});
var obj = makeCounter();
obj.test(); // 1
obj.test(); // 2
obj.log(); //undefined
自执行函数:
第一次看到这样的代码时的感觉是:好高级;
代码如下:
var obj = (function(window){
//各种代码
}(window));
然后google了下,发现他们经常都会这样写:
代码如下:
var obj= (function () {
var i = 1;
this.test=function(){
console.log(i);
i++;
}
return this;
}());
obj.test(); // 1
obj.test(); // 2
新闻热点
疑难解答
图片精选