自调用函数

84 阅读1分钟

一、定义

自调用函数也叫做及时调用的函数表达式,表示函数定义时就立即调用。

二、自调用函数实现

通过函数表达式当时后面添加()来实现

// 函数名方式定义函数不能实现立即调用效果
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)