
有点像Java中的内部类。内部类持有外部类引用function outer() { var outerVar outer; return function inner() { console.log(outerVar); } } var o outer(); o();为了深入理解闭包下面是一个复杂的例子function fun(argA, argB) { console.log(argB); return { fun: function (argC) { return fun(argC, argA); }, }; } var a fun(0); a.fun(1); a.fun(2); a.fun(3); //上面的打印结果是undefined,0,0,0 console.log(----------我是分割线--------------) var b fun(0).fun(1).fun(2).fun(3); //上面的打印结果是undefined,0,1,2 console.log(----------我是分割线--------------) var c fun(0).fun(1); c.fun(2); c.fun(3); //上面的打印结果是undefined,0,1,1