如何理解闭包?

1、定义和用法:当一个函数的返回值是另一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包。

2、表现形式:使函数外部能够调用函数内部定义的变量。

3、实例如下:

(1)、根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一直找,直到window的变量,没有就返回undefined、 这里明显count 是函数内部的flag2的那个count。

var count=10; //全局作用域 标记为flag1

function add(){

var count=0; //函数全局作用域 标记为flag2

return function(){ count+=1; //函数的内部作用域 alert(count); }

}

var s = add()

s();//输出1

s();//输出2

猜你喜欢

转载自blog.csdn.net/guoweifeng0012/article/details/82817508