立即执行函数的用法
立即执行函数的用法
1、定义
是定义函数以后立即执行该函数
2、写法(2种)
第一种:用小括号把整个函数定义和调用包裹起来
(function() {
// function body
}())
第二种:用括号把函数定义包裹起来,后面加一对小括号
(function( // function body ) {})()
3、立即执行函数的作用
为了防止变量命名冲突(变量污染),我们采用立即执行函数策略。因为立即函数内部会形成一个单独的作用域,我们可以一些封装外部无法读取的(私有变量临时变量或局部变量),外面访问不到这样就可以避免变量污染;
注意:多个立即函数中间必须加分号隔开
(function() { var num = 10; })(); (function() { var num = 10; })();
4、立即执行函数的参数
(function(j) {
// 代码中可以使用j
})(i);
如果立即执行函数中需要全局变量,全局变量会被作为一个参数传递给立即执行函数(上例中的i就是一个全局变量,i代表的是实参,j是i在立即执行函数中的形参)。
5、立即执行函数返回值
像其他函数一样,立即执行函数也可以有返回值。除了可以返回基本类型值以外,立即执行函数也能返回任何类型的值,比如对象,函数。
举例:
//变量result用来接受由立即执行函数返回的函数function() { return a + b;},result()相当于调用函数 var result = (function() { var a = 2; var b = 2; return function() { return a + b; } })(); console.log(result); //返回一个函数 console.log(result()); //4
结果: