JavaScript闭包应用之数据独立

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于JavaScript闭包应用之数据独立的主要内容,如果未能解决你的问题,请参考以下文章

深入浅出JavaScript之闭包(Closure)

深入浅出JavaScript之闭包(Closure)

javascript之闭包理解以及应用场景

javascript 闭包

JavaScript中的闭包

javascript深入理解js闭包