日期:2014-05-16  浏览次数:20456 次

Js闭包理解、运用
onClick: (function (){
											var pageNum = sourcePageNum;
											return 	function (node){
												getChildSources(node,pageNum);
												pageNum =1;
											};
										}())

代码目的:给某个元素的click事件赋getChildSources(node,pageNum)这个function,
但是对于pageNum这个参数有个要求:即第一次是sourcePageNum的值,以后就是1.
上面的代码利用闭包简单实现了这个功能。
function(){}()代表赋值click事件的时候,有且仅执行一次这个匿名function,这个匿名函数执行之后返回的是自己的闭包函数,并同时创建了自己的内部常量pageNum,以后click事件每次触发的都是闭包函数,而闭包函数则可以共享外部函数的常量,外部常量在闭包函数第一次执行之后就被赋值为1,而外部function有且仅执行一次,于是实现了业务需求。