先说说 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()返回的函数也需要执行;