자바스크립트

Closure를 왜 사용하나요?

하림회사 2023. 9. 23. 05:39

Closure를 왜 사용하나요?

클로저를 사용하는 이유는 상태를 안전하게 은닉하고 보존시키기 위함입니다.
그리고 이를 수정하는 방법은 특정 함수한테만 그 권한을 줍니다.

즉, 다수의 개발자와 함께 일을 할 때 실수를 방지하고 더 탄탄한 코드를 만들기위한 코드 패턴입니다.
따라서 다음과 같이 클로저를 만들어 사용합니다.

function createCard() {
    let title= "";
    let content= "";
    
    function changeTitle(text) {
      title= text
    }
    
    function changeContent(text) {
      content= text
    }
    
    function print() {
      console.log("TITLE -", title);
      console.log("CONTENT -", content);
    } 

    return { changeTitle, changeContent, print};
}

createCard 함수 본문에 있는 title, content 변수는 외부에서 접근할 수 없습니다.
따라서 changeTitle, changeContent 함수를 통해 수정할 수 있도록 해주었습니다.
값을 읽을 수 있도록 제공하는 함수는 print로 해주었습니다.

그리고 이 모든 함수를 객체로 묶어서 createCard 함수에서 return 합니다.
const myCard = createCard()와 같은 형태로 인스턴스를 만들어서 사용할 수 있습니다.