1

저는 Javascript의 디자인 패턴에 대한 여러 기사를 읽었습니다. 모듈 패턴을 읽기/쓰기가 쉬웠습니다.모듈 패턴 : 확장 모듈 제한

Javascript에서 모듈을 확장하는 것을 멈추는 방법이 있는지 궁금합니다. 여기

내가 작업했던 스크립트입니다 : 그 위의 미리보기를 실행 한 후 console.log(MODULE)을 할 경우, 나는 (증분, 확장) 모듈

두 가지 기능을 얻을 것이다

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에서는 작동하지 않습니다. 이것 이외의 좋은 대안? –