initialize myObject by calling a function that returns an object literal

w作用域控制变量的可见范围。

JavaScript: The Good Parts

Instead of initializing myObject with an object literal, we will initialize myObject by calling a function that returns an object literal. That function defines a value variable. That variable is always available to the increment and getValue methods, but the function's scope keeps it hidden from the rest of the program

 1 <script type="text/javascript">
 2     var wObject = function () {
 3         var value = 0;
 4         return {
 5             increment: function (inc) {
 6                 value += typeof inc === 'number' ? inc : 1;
 7             },
 8             getValue: function () {
 9                 return value;
10             }
11         }
12     }();
13     wf(wObject)
14     function wf(w) {
15         console.log(w)
16     }
17 
18     wf(wObject.increment(3))
19     wf(wObject.getValue())
20     wf(wObject.increment(3))
21     wf(wObject.getValue())
22 
23     var wObject = function () {
24         var value = 0;
25         return {
26             increment: function (inc) {
27                 value += typeof inc === 'number' ? inc : 1;
28                 return 'www';
29             },
30             getValue: function () {
31                 return value;
32             }
33         }
34     }();
35     wf(wObject)
36     function wf(w) {
37         console.log(w)
38     }
39 
40     wf(wObject.increment(3))
41     wf(wObject.getValue())
42     wf(wObject.increment(3))
43     wf(wObject.getValue())
44 </script>

 

 

posted @ 2017-02-12 23:35  papering  阅读(220)  评论(0编辑  收藏  举报