• JavaScript 立即执行函数和闭包


    闭包

    function A(){
            function B(){
                console.log("hello world");
            }
            return B;
    }
    var c = A();
    c();//hello world

    这就是一个最简单的闭包

    翻译为自然语言如下

    • 定义普通函数A
    • 在A中定义普通函数B
    • 在A中返回B
    • 执行A,并把A执行结果赋值给变量C
    • 执行C

    当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。

    立即执行函数

    此类函数没有声明,再一次执行过后即释放。适合做初始化工作

    //立即执行函数 也会有预编译的过程
    var num = (function(a,b,c){
            var d= a+b+c*2-2;
            return d;
    
    }(1,2,3))

    立即执行函数的两种写法

    • (function(){}()); W3C 建议第一种
    • (function(){})();

    关键点补充:

    • 只有表达式才能被执行符号执行
    //此为函数声明,不可以被执行符号执行
    function
    test(){ var a = 123; }();
    • 能被执行符号执行会忽略函数的名称
    //&& || + - ! 会让函数声明变成表达式,加上执行符号 即立即执行函数,然后忽略函数名称
    !function test(){
    
    }()
    所以立即执行函数可写成
    (function(){}());

    例题

    function test(a,b,c,d){
         console.log(a+b+c+d);
        }(1,2,3,4);

    正常不能执行,系统识别成了

    function test(a,b,c,d){
         console.log(a+b+c+d);
        }
        
        
        (1,2,3,4);

    这样就不会报错,但并不是立即执行函数

  • 相关阅读:
    JavaScript中循环的使用方法
    认识了解JavaScript
    div的对齐显示
    四宫格div
    使用div写一个计算机
    div基本操作
    CSS样式
    Electron的逆向
    Electron输出:Hello,World
    Electron的安装-Windows
  • 原文地址:https://www.cnblogs.com/FashionDoo/p/10478770.html
Copyright © 2020-2023  润新知