js当即执行函数

1、JS当即执行函数的写法函数

 

方式一、最前最后加括号
 工具

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

 

方式二、function外面加括号测试

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

 

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

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

 

2、当即执行函数的参数io

能够给当即执行函数传递参数,例如console

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

记住:function

一、当即函数内部是能够访问外部变量的,因此不少状况下,咱们并不须要传参数。如:jQuery的window实参,若是不传入。内部也是能够直接使用的。变量

二、一般你不该该给当即执行函数传递太多的函数,由于它很快会成为一个负担——为了理解代码是如何工做的,你不得不常常上下滚动源代码。命名空间

 

3、当即执行函数的返回值im

像其它任何函数同样,一个当即执行函数也能返回值而且能够复制给其它变量,例如

 

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

 

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

 

4、当即执行函数的好处

一、当即执行函数模式被普遍使用,它能够帮你封装大量的工做而不会在背后遗留任何全局变量。

二、定义的全部变量都会成员当即执行函数的局部变量,因此你不用担忧这些临时变量会污染全局空间。
 
三、这种模式常常被使用在书签工具(bookmarklets)中,由于书签工具在任何页面上运行而且保持全局命名空间干净是很是必要的;
 
四、这种模式也可让你将独立的功能封装在自包含模块中。
 
五、能够将这些代码封装进一个当即执行函数中,而且确保页面没有它的状况下也能正常工做。
六、能够添加更多的增强模块,移除它们,单独测试它们,容许用户去禁用它们等等。
 
 
 
 
5、注意点

当即执行函数一般做为一个单独模块使用。通常没有问题,可是,建议在本身写的当即执行函数前加分号,这样能够有效地与前面代码进行隔离。不然,可能出现意想不到的错误。

例如

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

会报这样一个错误:

相关文章
相关标签/搜索