2017-09-09 52 views
-3

我試過在函數外面聲明變量,但是我得到了undefined。在JavaScript中,如何從外部增加一個函數內部的變量?

 function scope() { 
     let foo = 1; 
     const bar = function() { 
     return ++foo; 
     } 

     return bar; 
     } 

     const baz = scope(); 
     console.log(baz.foo); 
     console.log(baz.foo); 
+1

你爲什麼要? – jonrsharpe

+0

您可能想改爲創建一個對象,請參閱https://stackoverflow.com/questions/12610394/javascript-classes –

+0

'console.log(baz)'? – zer00ne

回答

1

下面是做到這一點的一種方式,模塊模式:

var Module = (function() { 
//empty object 
    var my = {}; 
//value 
    my.value = 1; 

    //method for incrementing the value 
    my.increment = function() { 
     this.value++; 
    }; 

    return my; 
}()); 

Module.increment(); //increment the value from outside 
console.log(Module.value) //log the new value 

的jsfiddle:https://jsfiddle.net/9dr9xy23/5/

+2

好的答案,但在你的小提琴中,'Module.moduleProperty'需要改爲'Module.value'。 – freginold

+1

非常感謝您的支持,我更新了小提琴。 –

相關問題