[CS]:: Design pattern - 노출 모듈 패턴 revealing module pattern

김종건·2023년 5월 23일

CS 디자인 패턴

목록 보기
7/8
post-thumbnail

🎯노출 모듈 패턴 패턴

즉시 실행 함수를 통해 private,public같은 접근 제어자를 만드는 패턴을 말한다.

  • 자바스크립트는 접근 제어자가 따로 존재하지 않아서 전역 범위에서 스크립트가 실행된다
  • 그렇기 때문에 노출 모듈 패턴을 통해 private와 public 접근 제어자를 구현한다

✔예시

const pukuba = (() => {
  const a = 1
  const b = () => 2
  const public = {
      c : 2, 
      d : () => 3
  }
  return public 
})() 
console.log(pukuba)
console.log(pukuba.a)
// { c: 2, d: [Function: d] }
// undefined

//a,b는 private 범위 , 다른 모듈에서 사용불가
//c,d는 public 범위 , 다른 모듈에서 사용가능

public

>클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위

protected

클래스에 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만 외부 클래스에서 접근 불가능한 범위

private

클래스에 정의된 함수에서 접근 가능하지만 자식 클래스와 외부 클래스에서 접근 불가능한 범위

즉시 실행 함수

함수를 정의하자마자 바로 호출하는 함수. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지등에 사용

profile
https://github.com/Foccy https://foccy-github-5er7huis0-foccy.vercel.app/?category=category1

0개의 댓글