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有且仅执行一次,于是实现了业务需求。