var myObject={ value:0, increment:function(inc){ this.value += typeof inc === "number"?inc:1; } };
这是第一种var
myObject = function () { var value = 0; return { increment: function (inc) { value += typeof inc === "number" ? inc : 1; }, getValue: function () { return value; } } }();
这是第二种,感觉不一样,但是又不知道该如何说清楚。
试一下就知道了。第一种,可以直接通过 myObject.value 获取value 值。第二种,myObject.value 是获取不到的,只能通过 myObject.getValue() 获取。
换句话说,第一种方法,value 是暴露出来的(公开),第二种方法,value 是隐藏起来的(私有)