JS 闭包
简单来说:JS闭包就是不需要传参,调用外部函数就叫做闭包。
var abc = function (y) {
var x = y;
return function () {
alert(x+++‘,‘+y--);
}
}(5);
abc(); //5,5
abc(); //6.4
abc(); //7,3
abc(x); //报错,x未定义
var foo = function (x) {
var temp = 10;
function bar(y) {
alert((temp--) + x + y);
}
bar(10);
}
foo(5); //25
foo(5); //25
foo(5); //25
function foo(x) {
var temp = 10;
return function (y) {
alert((temp--) + x + y);
}
}
var bar = foo(2); //bar现在是闭包了
bar(10); //22
bar(10); //21
bar(10); //20
bar
的内存中,不会被垃圾回收器回收,如下:alert((function(x,y){return x+y;})(2,3));// "5"
alert((new Function("x","y","return x*y;"))(2,3));// "6"
不增加额外的全局变量,
执行过程中所有变量都是在匿名函数内部。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。