• 立即执行函数表达式解析(IIFE)


    形如(function test(){...})(),称为立即执行函数表达式(IIFE)。

    第一个括号将函数变成表达式,第二个括号执行这个函数。

    这样做可以让函数名不污染所在作用域,并且能够自动运行。
    另一个改进的形式:(function(){ .. }()),这两种实现的功能是一样的。
     
    参数的传递:
    (function test(global){...})(window),此处global是形参,window是传递进去的实参。
     
    IIFE 还有一种变化的用途是倒置代码的运行顺序,将需要运行的函数放在第二位,在 IIFE
    执行之后当作参数传递进去:
    (function IIFE(fn){
      fn(window)
    })(function fn(global){
     //将fn当做参数传递给IIFE,并在IIFE函数中执行fn,并将window作为参数传递给global
    })
     
    建议最好使用具名立即执行函数表达式(有函数名)
    因为匿名函数在栈追踪中不会显示出有意义的函数名,递归不便利,省略了对于代码可读性、可理解性很重要的函数名。
     
  • 相关阅读:
    BZOJ-2431: [HAOI2009]逆序对数列 (傻逼递推)
    BZOJ3695 滑行
    BZOJ3689 异或之
    BZOJ3696 化合物
    BZOJ1393 [Ceoi2008]knights
    BZOJ2280 [Poi2011]Plot
    BZOJ1570 [JSOI2008]Blue Mary的旅行
    BZOJ2751 [HAOI2012]容易题(easy)
    BZOJ2818 Gcd
    BZOJ2426 [HAOI2010]工厂选址
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/13162151.html
Copyright © 2020-2023  润新知