在JS中常常需要复用,将一些常见的操作封装起来,例如Jquery就是一个经典。立即执行函数又被称为立即执行的函数表达式,1.帮你实现代码加载完之后立即执行一些操作,如
时间处理器 2.创建对象等。
这种模式有三部分组成:
1):使用函数表达式定义一个函数(函数声明不起作用)
2):在结尾加上一对括号,让函数立即执行
3):将整个函数包裹在一对括号中(只有在不讲函数赋值给一个变量时才需要)
语法:
【javascript】 view plain copy
(function () {
alert('watch out');
}());
或者
【javascript】 view plain copy
(function(){
alert('watch out');
})();
其实自执行函数的本质就是函数表达式(匿名的函数表达式或者命名的函数表达式),在创建后立即调用
1.自执行函数的参数
我们也可以给自执行函数传递参数
(function(who,when){
alert('i meet '+who+ ' on '+when); //弹出 i meet jack on Thu Mar 02 2017 14:25:32 GMT+0800 (中国标准时间)
}('jack',new Date()));
注: 通常情况下,我们传递全局变量给自执行函数,这样它在函数内部不使用winodw也能访问的到。这种方式可以让代码在环境中更加通用。
但是通常情况下我们不应该给自执行函数传递太多参数,因为它会成为一个负担 --------为了了解代码是如何工作的,你需要不停的上下滚动源代码。
2.自执行函数的返回值
像其它函数一样,自执行函数也可以有返回值,并且赋值给其他变量。
例如:
var result = (function(){
return 2=2;
}());
当自执行函数赋值给一个变量时,最外层的括号可以省略
var result =function (){
return 2=2;
}();
如果没有注意到函数结束的括号,一些人可能会认为 return指向一个函数,实际上return 指向自执行函数的返回值 ,在这种情况下是4。
自执行函数除了可以返回基本类型的值,还可以返回任何类型的值,包括返回其它的函数。