javascript的闭包特性解释 新风宇宙

01 function foo(){
02     var a = 1;
03     return function() {
04         var b = 2;
05         return function(){
06             return [a,b];
07         }
08     }
09 }

JavaScript的变量作用域?

变量的作用范围就是定义开始行到本段(大括号)内,在此范围内,都相当于全局变量,例如:

变量 a 的作用范围就是02-08
变量 b 的作用范围就是04-07

所以,06 行,可以任意使用外部定义的变量,这样就形成了闭包。

参考文献:http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html#clEncap

原文地址:https://www.cnblogs.com/php5/p/1799592.html