JavaScript立即执行函数
立即执行函数可以让你的函数在创建后立即执行,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。
通常我们声明一个函数有以下几种方式:
// 普通的声明函数f1:
function one() {
console.log("one");
}
// 通过 函数名() 来调用此函数
one();
//通过匿名函数的函数表达式,被赋值给变量f2:
var two= function() {
console.log("two");
}
//通过 变量名() 来调用此函数
two();
//命名为f3的函数的函数表达式,被赋值给变量f3:(有点画蛇添足的感觉)
var three = function three () {
console.log("three ");
}
//通过 名字()来调用此函数
three ();
为何要写立即执行函数
一是不必为函数命名,避免了污染全局变量。
二是内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量。
声明立即函数有以下几种方式:
第一种方法 最前最后加括号 (f(){}())
(function(){ console.log("立即执行函数") }());
第二种方法 外面加括号 (f(){})()
(function () { console.log("立即执行函数") })();
第三种方法 前面加运算符,常见的是!与void
!function(){ console.log("立即执行函数") }();
void function(){ console.log("立即执行函数") }();
注:立即函数同普通函数一样都可以传递参数。一般我们不要给它传递太多参数,因为后面要查看代码的时候要看它如何工作而头大。