• JavaScript框架设计 一、种子模块


    IIFE

       IIFE:立即执行函数表达式
    IIFE一般用于构造私有变量,避免全局空间污染。

    使用IIFE把计数器变量保存为私有变量更安全,同时也可以减少对全局空间的污染

    var add = (function ()
    {
        var count = 0;
        return function ()
        {
            return ++count;
        }
    })();
    console.log(add()); // 1
    console.log(add()); // 2
    

    匿名方法执行后,由于返回的方法在匿名方法作用域中,可以访问count变量,所以匿名方法执行环境不会被释放。

    多次执行匿名方法,会生成多个函数执行环境,是独立的实例,如下:

    // makeCounter函数返回的是一个新的函数,该函数对makeCounter里的局部变量i享有使用权
    function makeCounter() {
      // i只是makeCounter函数内的局部变量
      var i = 0;
     
      return function() {
        console.log( ++i );
      };
    }
     
    // 注意counter和counter2是不同的实例,它们分别拥有自己范围里的i变量
     
    var counter = makeCounter();
    counter(); // 1
    counter(); // 2
     
    var counter2 = makeCounter();
    counter2(); // 1
    counter2(); // 2
    

    IIFE的其他方式:

    (function(){}());
    (function(){})();
    ......
    

    call,apply,bind

        var name = '小王', age = 17;
        var obj = {
            name: '校长',
            objage: this.age,
            fun: function (a, b)
            {
                console.log(this.name, this.age, a, b);
            }
        }
        var db = {
            name: 'admin',
            age: 129
        }
        obj.fun.call(db, '成都', '上海'); // admin, 129, 成都, 上海
        obj.fun.apply(db, ['成都', '上海']); // admin, 129, 成都, 上海
        obj.fun.bind(db)('成都', '上海'); // admin, 129, 成都, 上海
    
  • 相关阅读:
    输入输出
    SpringCloud组件之HystrixDashbord
    SpringCloud组件之zuul的使用
    SpringCloud组件之Hystrix组件的使用
    负载均衡算法示例
    JavaScript基础知识总结
    SpringBoot收藏
    java虚拟机详细图解10--JVM类加载机制及类加载过程
    java虚拟机详细图解9--JVM机器指令集
    java虚拟机详细图解8--JVM运行时数据区
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/13374254.html
Copyright © 2020-2023  润新知