zoukankan      html  css  js  c++  java
  • IIFE 立即执行函数表达式-模块化

    1)立即执行

    2)表达式

    3)括号,分号结束 | 前缀运算符 | 表达式上下文

    4)只需要执行一次,内部变量无需维护,可用于初始化

    (function( ) {
    })( );
    或 (
    function( ){ }( ));
    或通过前缀运算符强制执行表达式,可以无分号
    +function() { }( ) 或在表达式上下文,不需要前缀或括号,无需调用就执行了 var ourter = function outter (){ }( )

    4)可传入参数

    var obj = {} ;
    (function(export){
       export.add = function () { } ;
       export release = function () { } ;
    })(this.obj = { })   // this 指向window对象

    5)应用

    a、用于模块化

    var weekDay = (function(){
        var week = ["星期一","星期二","星期三","星期四","星期五"];
        return function (num) {
            return week[num];
        }
    })()
    console.log(weekDay(1))
    var weekDay = (function(){
        var week = ["星期一","星期二","星期三","星期四","星期五"];
        return {
         name:function (num) {
                return week[num];
          },
          index:function (name) {
              return week.indexOf(name);
          }
        }
    })() 
    console.log(weekDay.name(1))
    console.log(weekDay.index("星期二"))    
    //缺点:当接口多时,不利于看 
    (function(exports){
        var week = ["星期一","星期二","星期三","星期四","星期五"];
        exports.name = function (num) {
            return week[num];
        }
        exports.index = function (name) {
            return week.indexOf(name);
        }
    })(this.weekDay = {});
    console.log(weekDay.name(1))
    console.log(weekDay.index("星期二"))
    //缺点:每个模块都要定义一个全局变量存储,存在多个模块刚好使用相同名字问题
  • 相关阅读:
    删除字符串前后的空格
    Python中定义“私有”成员变量和成员函数
    linux 线程
    进程虚拟内存模型
    守护进程
    FIFO
    linux 中的 wait 函数和 waitpid 函数
    孤儿进程和僵尸进程
    linux 中的 exec 函数族
    linux中的fork函数
  • 原文地址:https://www.cnblogs.com/yuyedaocao/p/12060180.html
Copyright © 2011-2022 走看看