分享

js立即执行函数

 龙山文库 2016-09-23

一、JS立即执行函数的写法

 

方式1、最前最后加括号
 


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

 

方式2、function外面加括号


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

 

方式3、function前面加运算符,常见的是!与void


!function(){alert(1);}(); 
void function(){alert(2);}(); 

 

二、立即执行函数的参数

可以给立即执行函数传递参数,例如


(function(who, when) {
    console.log("I met " + who + " on " + when);
} ("Joe Black", new Date()));

记住

1、立即函数内部是可以访问外部变量的,所以很多情况下,我们并不需要传参数。如:jQuery的window实参,如果不传入。内部也是可以直接使用的。

2、通常你不应该给立即执行函数传递太多的函数,因为它很快会成为一个负担——为了理解代码是如何工作的,你不得不经常上下滚动源代码。

 

三、立即执行函数的返回值

像其它任何函数一样,一个立即执行函数也能返回值并且可以复制给其它变量,例如

 

var result = (function () {
    return 2 + 2;
}());

 


var result = (function () {
    return 2 + 2;
})();

 

四、立即执行函数好处

1、立即执行函数模式被广泛使用,它可以帮你封装大量的工作而不会在背后遗留任何全局变量。

2、定义的所有变量都会成员立即执行函数的局部变量,所以你不用担心这些临时变量会污染全局空间。
3、这种模式经常被使用在书签工具(bookmarklets)中,因为书签工具在任何页面上运行并且保持全局命名空间干净是非常必要的;
4、这种模式也可以让你将独立的功能封装在自包含模块中。
5、可以将这些代码封装进一个立即执行函数中,并且确保页面没有它的情况下也能正常工作。
6、可以添加更多的加强模块,移除它们,单独测试它们,允许用户去禁用它们等等。
五、注意点

立即执行函数通常作为一个单独模块使用。一般没有问题,但是,建议在自己写的立即执行函数前加分号,这样可以有效地与前面代码进行隔离。否则,可能出现意想不到的错误。

例如


         var c = 12
        var d = c
      (function () { var e = 14; }())

会报这样一个错误:

 

收藏
98
很赞
384
您可能感兴趣

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多