首页 > 语言 > JavaScript > 正文

javascript 闭包详解

2024-05-06 14:45:55
字体:
来源:转载
供稿:网友

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选