用js做代码例子,如下
-
function make_add(val){
-
var v=val;
-
return function(x){ return v+x;}
-
}
-
var add1=make_add(1);
-
var add3=make_add(3);
-
console.log(add1(1));
-
console.log(add3(1));
-
console.log(add1(3));
make_add 返回一个函数,这里闭包的作用就是体现在make_add内的v,本是局部变量,但是事实上,在外部调用add1和add3时,各自内的v值依然有效。
就像是v的值被锁在了各自的对象中(1被锁到add1中,3被锁到add3里)
非常简单明了的例子,记一下。。
阅读(2778) | 评论(0) | 转发(0) |