[JS]闭包

2015-12-31 写技术

    所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

    很少有人能直接看懂这句话,因为他描述的太学术。我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的创建过程直接理解闭包的定义是非常困难的。看下面这段

var create_counter = function(event_name){
	var counter = 0;
	var display = function(){
		console.log("Number of event "+event_name+":"+counter);
	}
	var increment = function(){
		counter ++;
		display();
	}
	var decrement = function(){
		counter --;
		display();
	}
	return {
		increment:increment,
		decrement:decrement
	};
}
var counter1 = create_counter("counter1");
var counter2 = create_counter("counter2");

counter1.increment();
counter2.increment();
counter2.increment();
counter2.increment();
counter2.increment();
counter1.increment();


标签: JS

评论:


2015-12-31 08:51
<script>alert("afadfas");</script>

发表评论:

Powered by anycle 湘ICP备15001973号-1