http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript공개 모듈 패턴 코드를 모듈 패턴으로 변환
나는 위의 마스터 피스를 통과했다. 나는 여전히 위의 기사에서 두 가지를 얻을 수 없습니다.
var myRevealingModule = (function() {
var privateVar = "Ben Cherry",
publicVar = "Hey there!";
function privateFunction() {
console.log("Name:" + privateVar);
}
function publicSetName(strName) {
privateVar = strName;
}
function publicGetName() {
privateFunction();
}
// Reveal public pointers to
// private functions and properties
return {
setName: publicSetName,
greeting: publicVar,
getName: publicGetName
};
})();
myRevealingModule.setName("Paul Kinlan");
관련 질문 : JavaScript design pattern: difference between module pattern and revealing module pattern?
내가 위의 질문에서 많은 부분을 이해했다. 누구든지 위의 revealing module pattern
을 전통적인 module pattern
으로 변환하여 차이를 시각화 할 수 있습니까?
필자가 말할 수있는 한 '노출 모듈 패턴'은 '모듈 패턴'을 수행하는 또 다른 방법입니다. 다른 방법을 원한다면'node.js' 모듈 ('commonjs') 또는'amd' 모듈을보십시오. 그것은 일종의 "모듈"일 뿐이며 (명백히 내 마음 속으로) 명백한 폐쇄가 없기 때문입니다. 결국, 기본적으로는 동일하지만 코드의 일부만 생성됩니다. – Alxandr
또한 위에 게시 한 코드에 대한 요점. 'publicVar'는 public이 아닙니다. 왜냐하면'myRevealingModule.greeting'은 포인터가 아니기 때문입니다. http://jsfiddle.net/Xr2kB/ – Alxandr