ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Javascript] 클로저란
    개발/JavaScript 2022. 6. 25. 18:08

    클로저란

    외부 함수에 접근할 수 있는 내부 함수 혹은 이러한 원리를 일컫는 용어인데 스코프에 따라서 내부함수의 범위에서는 외부 함수 범위에 있는 변수에 접근이 가능하지만 그 반대는 실현이 불가능하다는 개념 입니다.
    특징으로는 외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않습니다. 예를 들어 한 함수안에 다른 함수가 있다면 그 안의 함수는 바깥에 정의해놓은 변수를 사용할 수 있지만 그 반대는 가능하지 않습니다.

    function makeFunc() {
      var name = "Mozilla";
      function displayName() {
        alert(name);
      }
      return displayName;
    }
    
    var myFunc = makeFunc();
    //myFunc변수에 displayName을 리턴함
    //유효범위의 어휘적 환경을 유지
    myFunc();
    //리턴된 displayName 함수를 실행(name 변수에 접근)

     

    클로저의 장점

    1. 데이터를 보존할 수 있다.
      • 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수를 사용할 수 있다.
      • 클로저는 이처럼 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게하는 폐쇄성을 갖는다.
    2. 정보의 접근 제한 (캡슐화)
      • 클로저 모듈 패턴’을 사용해 객체에 담아 여러 개의 함수를 리턴하도록 만든다.
      • 이러한 정보의 접근을 제한하는 것을 캡슐화라고 한다.
    3. 모듈화에 유리하다.
      • 클로저 함수를 각각의 변수에 할당하면 각자 독립적으로 값을 사용하고 보존할 수 있다.
      • 이와 같이 함수의 재사용성을 극대화 함수 하나를 독립적인 부품의 형태로 분리하는 것을 모듈화라고한다.
      • 클로저를 통해 데이터와 메소드를 묶어다닐 수 있기에 클로저는 모듈화에 유리하다.

     

    참고자료

    '개발 > JavaScript' 카테고리의 다른 글

    [JavaScript] RegExp 객체  (0) 2022.08.15
    [JavaScript] 정규표현식 모음  (0) 2022.08.05
    [JavaScript] 접근자 프로퍼티  (0) 2022.07.14
    [JavaScript] 메서드 체이닝  (0) 2022.07.01
    [JavaScript] 논리 연산자  (0) 2022.05.09

    댓글

Designed by Tistory.