啥是自执行函数,有的说是立即执行,有的说是自动执行,不管到底是啥,我们只要自己理解这个自执行就好。
一般定义函数的方式
function fn1() {
console.log('我是函数1')
}
fn1() // 我是函数1
var fn2 = function() {
console.log('我是函数2')
}
fn2() // 我是函数2
自执行函数有三种写法
( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” )
( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " ) )
! function ( " 参数 " ) { " 函数方法 " ; } ( " 给参数传的值 " )
var res1 = (function(a,b){
return a+b
})(1,2)
console.log(res1) // 3
var res2 = (function(n){
return n
},(8))
console.log(res2) // 8
var res3 = !function(n) {
return n
}(100)
console.log(5) // 5
自执行函数它的内部可以访问全局变量,但是除了自执行函数自身内部,是无法访问它的
function aaa(a1, b1) {
return sum1 = a1 + b1
}
(function bbb(a2, b2) {
return sum2 = a2 + b2
;
})()
console.log(aaa) // 输出aaa函数
console.log(bbb) // Uncaught ReferenceError: bbb is not defined