javascript闭包自执行

先说说 javascript自执行的写法:

1,(function(){

        document.write("hello world");

    }())

2: (function(){

            document.write("hello world");    

    })()

这两种写法执行都会在浏览器页面上看到 hello world  字样;自执行,顾名思义就是自己会自动执行的意思;

通常javascript中,全局变量的作用域为全局,任何地方都可以访问,但局部变量只能内部访问。函数内部可以访问全局变量,也就是说我们访问上一层的变量,但是反过来不行,有时候我们需要读取函数内部的变量,该怎么办呢,既然下层函数可以访问上层函数的变量,,那我们可以在函数内部再写一个函数,并返回函数外层函数中的变量就可以了,下面说说闭包:闭包简单理解就是可以读取其他函数内部变量的函数; 

var add=(function(){

    var counter=0;

    return function(){

        return counter+=1;

    }

})();

add();

add();

add();

最后的结果是 3;用自执行是因为add()返回的函数也需要执行;

你可能感兴趣的:(javascript)