js中的闭包函数
看了下js中的闭包函数, 没有理解太会, baidu了一下, 找到下边的内容.
// 搜索到的.
function a()
{
var i=0;
function b()
{
alert(++i);
}
return b;
}
var c = a();
c();
//模仿上例写了一个闭包函数, 原w3school上的例子
function addNum(iNum1, iNum2)
{
// document.write("gogo");
var iBaseNum = 10;
function doAdd()
{
//return iNum1 + iNum2 + iBaseNum;
alert(iNum1 + iNum2 + iBaseNum);
}
return doAdd;
}
var d=addNum(5,15); // 注意这里的参数要放到声明d的时候填写,
d();
理解以上内容, 首先明确:
1 闭包函数的用途之一是让一个函数中声明的变量在经过该函数之后, 还能够被其它的函数所引用, 如例1 中会一直提示数字增加1
2 闭包函数的使用似乎必须需要被外部的函数来进行引用, 即不被js的gc回收掉??? (这个不确认)
下边是搜索到的:
---------------------------------------------------------------------------------------------------------------------