kakts-log

programming について調べたことを整理していきます

node モジュールのスコープ

以下のコードは、3つの関数をmodule.exportsにより外部公開していると同時に
外部公開しない変数countを用いている。

変数countはファイルの先頭で定義されているが、この変数のスコープはモジュール内である。


var count = 0;

module.exports = {
        say: function(name){
                count++;
                console.log('Hello ' + name);
        },

        getCount: function(){
                return count;
        },

        resetCount: function(){
                count = 0;
        }
};


変数countのスコープがモジュール内になるのは、var付きの変数宣言をしているためであり、varなしで宣言した場合は、その変数はグローバル変数になることに注意する。

varなしで宣言した場合、上記のresetCount()が正常に動作しない。