function outerFunc() { var privateAttr = 10; function innerFunc() { privateAttr *= 2; console.log(privateAttr); return privateAttr; } return innerFunc; } var refInnerFunc = new outerFunc(); refInnerFunc(); refInnerFunc(); var refInnerFunc2 = new outerFunc(); refInnerFunc2();
var MyNamespace = {}; MyNamespace.TreeItem = (function() { var numTreeItems = 0; function counter() { numTreeItems ++; console.log("Created "+numTreeItems+" tree items!"); //alert(numTreeItems); } return counter; })(); var treeItem1 = new MyNamespace.TreeItem(); var treeItem2 = new MyNamespace.TreeItem();
第一段执行的结果是20 40 20
第二段执行结果 Created 1 tree items! Created 2 tree items!
两端代码差别就是一个匿名函数,为什么结果不一样???同样是new两个对象,为什么???
是看了这两篇文章后想到http://hbc8848.iteye.com/blog/798724和http://hbc8848.iteye.com/blog/798154
求解啊。