美文网首页
IIFE与UMD

IIFE与UMD

作者: Y_d4ea | 来源:发表于2019-04-30 16:47 被阅读0次

    IIFE

    代表立即执行函数表达式 (Immediately Invoked Function Expression)

    var a = 2;
    (function IIFE( global ) {
      var a = 3;
      console.log( a ); // 3 
      console.log( global.a ); // 2
    })( window );
    console.log( a ); // 2
    

    UMD

    IIFE 还有一种变化的用途是倒置代码的运行顺序,将需要运行的函数放在第二位,在 IIFE 执行之后当作参数传递进去。这种模式在 UMD(Universal Module Definition)项目中被广 泛使用。尽管这种模式略显冗长,但有些人认为它更易理解。

    var a = 2;
    (function IIFE( def ) {
      def( window );
    })(function def( global ) {
      var a = 3;
      console.log( a ); // 3 console.log( global.a ); // 2
    });
    

    函数表达式 def 定义在片段的第二部分,然后当作参数(这个参数也叫作 def)被传递进 IIFE 函数定义的第一部分中。最后,参数 def(也就是传递进去的函数)被调用,并将 window 传入当作 global 参数的值。

    相关文章

      网友评论

          本文标题:IIFE与UMD

          本文链接:https://www.haomeiwen.com/subject/uvvvnqtx.html