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("星期二"))
    //缺点:每个模块都要定义一个全局变量存储,存在多个模块刚好使用相同名字问题
  • 相关阅读:
    正则表达式常用语法
    JDK源码分析hashmap
    追加数据
    验证域名!!!!!!!!!
    Hadoop(一)之初识大数据与Hadoop
    Hadoop(十)Hadoop IO之数据完整性
    Hadoop(九)Hadoop IO之Compression和Codecs
    Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
    Hadoop(七)HDFS容错机制详解
    python连接数据库
  • 原文地址:https://www.cnblogs.com/yuyedaocao/p/12060180.html
Copyright © 2011-2022 走看看