var module1 = (function () { var count = 0; var setcount = function (val) { count = val; }; var getcount = function () { alert("count=" + count); }; return { count: count, getcount: getcount, setcount: setcount }; })(); module1.count = 100; module1.getcount(); //0 alert(module1.count); //100 module1.setcount(200); module1.getcount(); //200 alert(module1.count); //100
本人前端薄弱,不明白为什么module1.count设置的不是module1内部count的值,请指点!或给出博文参考也行。谢谢!
count 是number类型的,module1.count 和 var count 是两个变量,存储在两个不同的位置,没有引用关系
所以你设置module1.count时是改变的module1对象的count属性,没有改变function空间里的count值
而你用getcount得到的是function空间里的count值。
如果你把count = 0 换成 count = {a:0},然后在用原来的方式改变count.a的值,就会发现用getcount方法也能得到改变过的值了。