第一种
function foo() { var a = 10; function bar() { a *= 2; } bar(); return a; }
第二种
function foo() { var a = 10; function bar() { a *= 2; return a; } return bar; }
两种效果相同。
调用结果
var baz = foo(); // baz is now a reference to function bar. alert(baz()); // returns 20. alert(baz()); // returns 40. alert(baz()); // returns 80. var blat = foo(); // blat is another reference to bar. alert(blat()); // returns 20, because a new copy of a is being used.
有意思。
js设计模式真的很有创意。
本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5048930.html,如需转载请自行联系原作者