一、定义
自调用函数也叫做及时调用的函数表达式,表示函数定义时就立即调用。
二、自调用函数实现
通过函数表达式当时后面添加()来实现
// 函数名方式定义函数不能实现立即调用效果
function fun(){
console.log(111);
}() // 报错:SyntaxError: Unexpected token ')'
// 函数表达式方式定义函数可以实现立即调用方式
// 相当于将函数先进行了计算,然后直接加()调用
let fun = function (params) {
console.log(222);
}()
借鉴先将函数参加运算,再加()来实现自调用函数的其他方式
+function fun(){
console.log(1111);
}()
-function fun(){
console.log(2222);
}()
!function fun(){
console.log(3333);
}()
(function fun(){
console.log(4444);
})()
(function fun(){
console.log(5555);
})(123)
自调用函数特点
1、自调用函数关住了函数所处的作用域,再外部是无法调用的
!function fun(){
console.log(4444);
}()
fun() // Uncaught ReferenceError: fun is not defined
由于自调用函数无法被外部调用,所以函数名没有什么意义,因此自调用函数最常用的是匿名函数的形式
(function(){
console.log(111);
})()
自调用函数传参
(function(a){
console.log(a); // 111222
})(111222)