猿问

js 变量问题

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的值,请指点!或给出博文参考也行。谢谢!
茅侃侃
浏览 420回答 1
1回答

烙印99

count 是number类型的,module1.count 和 var count 是两个变量,存储在两个不同的位置,没有引用关系 所以你设置module1.count时是改变的module1对象的count属性,没有改变function空间里的count值 而你用getcount得到的是function空间里的count值。 如果你把count = 0 换成 count = {a:0},然后在用原来的方式改变count.a的值,就会发现用getcount方法也能得到改变过的值了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答