首页 新闻 会员 周边 捐助

js 变量问题

0
[已解决问题] 解决于 2013-03-29 13:33
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的值,请指点!或给出博文参考也行。谢谢!
少年已去的主页 少年已去 | 菜鸟二级 | 园豆:206
提问于:2013-03-29 10:47
< >
分享
最佳答案
0

count 是number类型的,module1.count 和 var count 是两个变量,存储在两个不同的位置,没有引用关系

所以你设置module1.count时是改变的module1对象的count属性,没有改变function空间里的count值

而你用getcount得到的是function空间里的count值。

如果你把count = 0 换成 count = {a:0},然后在用原来的方式改变count.a的值,就会发现用getcount方法也能得到改变过的值了。

奖励园豆:5
collapsar | 菜鸟二级 |园豆:260 | 2013-03-29 11:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册