立即执行函数(IIFE)

目的:自动执行,执行完之后立即释放;

立即执行函数 --> 初始化函数

可以起到隔离变量的作用

写法(两种写法,效果一样):

1.(function() {
    
})();
2.(function() {
    
}()) 

传参:

(function(a,b) {
    console.log(a); // 1
    console.log(b); // 2
})(1,2);

返回值:

var num=(function (a, b) {
    return a+b;
})(1, 2);
console.log(num); // 3

思考:

(function () {
    console.log(1); // 1
})();
var x1=function() {
    console.log(2); // 2
}();

function x2() {
    console.log(3); // 报错
} ();

一定是表达式才能被执行执行符号执行

var test = function () {
    console.log(1);
}
console.log(test);
// f(){...}
var test1 = function () {
    console.log(1);
}();
console.log(test1);
// 1
// undefined 立即执行后被销毁
var test2 = function () {
    return 2
}();
console.log(test2);
// 2 除非返回值,不然一般都是undefined(函数都是被销毁了)

函数声明转换成函数表达式!+ - || &&;

+function test () {
    console.log(1);
}();
// 1

封装插件的时候(把;写在前面):

;(function() {
    
})()
原文地址:https://www.cnblogs.com/ssszjh/p/14361207.html