学习参考文章:JavaScript中立即执行函数实例详解 立即执行函数表达式(IIFE)
IIFE(Immediately Inoveked Function Expression)立即知悉你跟函数表达式
特点
函数创建后立即执行,不需要被调用
作用
1.不必为函数命名,避免了污染全局变量(第三方库中存在大量的变量与函数)
2.形成了一个单独的作用域,可以封装一些外部无法读取的私有变量
写法
(function () {
// ...
})()
(function () {
// ...
}())
// 传值
(function (val) {
console.log(val)
})(1)
(function (val) {
console.log(val)
}(1))
以下代码报错:Uncaught SyntaxError: Unexpected token (
function () {
// ...
}()
引擎遇到function关键字会认为后面的都是函数声明语句,不应该以()结尾。 解决的办法是让引擎知道,函数声明不包括最后的(),需要把前面的函数声明变成函数表达式。