js函数自执行

在javascript里,任何function在执行的时候都会创建一个执行上下文,因为function声明的变量和function有可能只在该function内部,这个上下文,在调用function的时候,提供了一种简单的方式来创建自由变量或私有子function。

函数自执行写法:

1.最前最后加括号

(function(){alert();}());//有点是提醒阅读代码的人,这段代码是一个整体。

2.function外面加括号

(function(){alert();})();

3.function前面加运算符,常见的是!和void

!function(){alert();}();

void function(){alert();}();

 

使用案例:

var counter=(function(){

var i=0;

returen{

get:function(){

return i;

},

set:function(){

i=val;

},

increment:function(){

return ++i;

}

};

}());//创建一个立即调用的匿名函数表达式,returen一个变量,其中包含要暴露的东西,返回的这个变量将赋值给counter,而不是外面声明的function函数。

counter.get();//0

counter.set(3);

counter.increment();//4

counter.increment();//5

 

counter.i;//undefined 因为i不是返回对象的属性

i;//引用错误,i没有定义(因为i只存在于闭包)

 

(function(){

//code,运行的代码

})();//在js中()有两种含义,一个是运算符,一个是分隔符。这里的第一个是分隔符,表示里面的函数是一个部分。后面的是运算符,表示里面的函数要运行,相当于定义完一个匿名函数后就让它直接运行。

posted @ 2016-10-24 10:44  catherinehd  阅读(240)  评论(0编辑  收藏  举报