JavaScript의 공개 모듈 패턴
문제
객체clarkKent
를 생성하는 다음 예를 살펴보겠습니다.
const clarkKent = {
name: 'Clark Kent',
secretIdentity: 'Superman',
introduce: function() {
return `Hi, my name is ${this.name}.`;
},
issuesReport: function() {
return `${this.secretIdentity} saves the day!`;
},
};
이 예를 사용하여 Clark은 자신을 소개하고 Superman이 하루를 구했다고 보고할 수 있습니다.
console.log(clarkKent.introduce());
// Hi, my name is Clark Kent.
console.log(clarkKent.issuesReport());
// Superman saves the day!
이것은 훌륭하지만, 오 안돼! 우리는 Clark의 비밀 신원에 접근할 수 있습니다!
console.log(clarkKent.secretIdentity);
// Superman
구조에 모듈 패턴 공개
이 문제를 해결할 수 있는 한 가지 방법은 표시 모듈 패턴을 사용하는 것입니다. 공개 모듈 패턴은 즉시 호출된 함수 표현식(IIFE)을 사용하여 모듈 내에서 액세스하고 싶지만 세상에 노출하고 싶지 않은 변수 주위에 클로저를 만듭니다.
이것이 Clark에게 어떻게 작용하는지 봅시다.
const clarkKent = (function() {
const name = 'Clark Kent';
const secretIdentity = 'Superman';
const introduce = function() {
return `Hi, my name is ${name}`;
};
const issuesReport = function() {
return `${secretIdentity} saves the day!`;
};
return { introduce, issuesReport };
})();
console.log(clarkKent.introduce());
// Hi, my name is Clark Kent.
console.log(clarkKent.issuesReport());
// Superman saves the day!
console.log(clarkKent.secretIdentity);
// undefined
완벽한! 우리는 노출하고 싶지 않은 비밀 정보에 대한 클로저를 만들고 모듈에서 introduce
및 issuesReport
메서드만 공개했습니다!
결론
이것은 약간 어리석은 예이지만 개인 정보를 유지하고 중요하게는 정보가 실제로 필요한 곳 이상으로 노출되지 않도록 노출 시 도구와 패턴이 있다는 점에 유의하는 것이 중요합니다.
Reference
이 문제에 관하여(JavaScript의 공개 모듈 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/nas5w/the-revealing-module-pattern-in-javascript-15a8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const clarkKent = {
name: 'Clark Kent',
secretIdentity: 'Superman',
introduce: function() {
return `Hi, my name is ${this.name}.`;
},
issuesReport: function() {
return `${this.secretIdentity} saves the day!`;
},
};
console.log(clarkKent.introduce());
// Hi, my name is Clark Kent.
console.log(clarkKent.issuesReport());
// Superman saves the day!
console.log(clarkKent.secretIdentity);
// Superman
이 문제를 해결할 수 있는 한 가지 방법은 표시 모듈 패턴을 사용하는 것입니다. 공개 모듈 패턴은 즉시 호출된 함수 표현식(IIFE)을 사용하여 모듈 내에서 액세스하고 싶지만 세상에 노출하고 싶지 않은 변수 주위에 클로저를 만듭니다.
이것이 Clark에게 어떻게 작용하는지 봅시다.
const clarkKent = (function() {
const name = 'Clark Kent';
const secretIdentity = 'Superman';
const introduce = function() {
return `Hi, my name is ${name}`;
};
const issuesReport = function() {
return `${secretIdentity} saves the day!`;
};
return { introduce, issuesReport };
})();
console.log(clarkKent.introduce());
// Hi, my name is Clark Kent.
console.log(clarkKent.issuesReport());
// Superman saves the day!
console.log(clarkKent.secretIdentity);
// undefined
완벽한! 우리는 노출하고 싶지 않은 비밀 정보에 대한 클로저를 만들고 모듈에서
introduce
및 issuesReport
메서드만 공개했습니다!결론
이것은 약간 어리석은 예이지만 개인 정보를 유지하고 중요하게는 정보가 실제로 필요한 곳 이상으로 노출되지 않도록 노출 시 도구와 패턴이 있다는 점에 유의하는 것이 중요합니다.
Reference
이 문제에 관하여(JavaScript의 공개 모듈 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/nas5w/the-revealing-module-pattern-in-javascript-15a8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(JavaScript의 공개 모듈 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nas5w/the-revealing-module-pattern-in-javascript-15a8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)