zoukankan      html  css  js  c++  java
  • 【JavaScript】闭包应用之数据独立

      在平常的开发中,总有一些方法我们在不同的地方都有用的,因此我们会把这些方法封装起来。当我们需要在开发一个功能的时候需要用到一个组合函数(多个函数之间有联系,即有一个或多个共同的全局变量)且这个组合函数需要在多个地方被调用到。若是简单的将这个组合函数设置成全局函数其共同的变量设置为全局变量的话便会发现一个问题:我在A功能引用了这个组合函数,引用结束后这个组合函数的全局变量global获得了一个数据a,当我们在B功能又触发了这个组合函数,全局变量global被修改成了b,如此而来,当我们便失去了数据a。运用闭包的方法能够很好的解决这个问题,例子如下:

    //代码实现两个各种“独立”的计数器
    function createCounter() {
    	var counter = 0;
    	return function () {
    		counter ++;
    		console.log("Number of events: " + counter);
    	}
    }
    
    var counter1 = createCounter();
    var counter2 = createCounter();
    
    counter1();//Number of events: 1
    counter1();//Number of events: 2
    
    counter2();//Number of events: 1
    
    counter1();//Number of events: 3
  • 相关阅读:
    指针
    day07
    day06
    oracle instr
    动态解析dll及使用类
    客户端调用接口
    Java中调用WebService
    Vs2015智能提示英文
    oracle中varchar(32)转nvarchar(32)
    C#创建XML节点
  • 原文地址:https://www.cnblogs.com/daihere1993/p/5156845.html
Copyright © 2011-2022 走看看