1

私はJavascriptのデザインパターンに関するいくつかの記事を読んできました。読み書きが簡単なモジュールパターンが見つかりました。モジュールパターン:モジュールの拡張を制限する

Javascriptでモジュールを拡張する方法がないかと思います。ここで

は、私が取り組んできたスクリプトです:私は、これらの上記のスニペットを実行した後 console.log(MODULE)を行う場合、私は(INCR、拡張子)MODULE

ための2つの機能を得るでしょう

var MODULE = (function(){ 
    var increment = 0; 

    var funcIncrement = function(){ 
     increment ++; 
     console.log(increment); 
    }; 

    return { 
     incr: funcIncrement 
    } 
})(); 


var moduleTwo = (function(MODULE){ 
    MODULE.extension = function(){ //This module will add extension function to MODULE. I don't want this to happen 
     console.log('extension method'); 
    } 


})(MODULE || {}); 

MODULEを初めて宣言するときに、MODULEの拡張を制限する方法はありますか?

答えて

3

あなたがオブジェクト

var MODULE = (function(){ 
    var increment = 0; 

    var funcIncrement = function(){ 
    increment ++; 
    console.log(increment); 
    }; 

    return Object.freeze({ 
    incr: funcIncrement 
    }); 
})(); 

返さ凍結することができます。しかし、それは古いブラウザではサポートされていません。

+0

これは、例えば、 'MODULE = {}'のように上書きすることができることに注意してください。 – Cristik

+0

残念ながら、フリーズはIE8で動作しません。これ以外の良い選択肢はありますか? –

関連する問題