ABOUT ME

Today
Yesterday
Total
  • 즉시 실행 함수, 내부 함수
    자바스크립트,제이쿼리 2019. 11. 15. 00:12

    즉시 실행 함수

    (function (name) {
        console.log('this is the immediate function -> ' + name);
    })('foo');

    괄호 안에 값을 추가해 즉시 실행 함수의 인자로 넘길 수가 있다. 예제의 경우는 ('foo')로 즉시 실행 함수를 호출했으며, 이떄 ''foo'를 인자로 넘겼다, 이 값은 앞 예제 즉시 실행 함수의 name 매개변수로 넘겨지게 된다.

    즉시 실행 함수의 경우에는 같은 함수를 다시 호출할 수 없다. 따라서 즉시 실행 함수의 이러한 특징을 이용하낟면 최조 한 번의 실행만을 필요로 하는 초기화 코드 부분 등에 사용할 수 있다.

     

    즉시 실행 함수는 자바스크립트 라이브러리나 프레음워크 소스들에서 사용되는데 이유는 자바스크립트의 변수 유효 범위 특성 떄문이다. 자바스크립트에서는 함수 유효 범위를 지원한다. 기본적으로 자바스크립트는 변수를 선언할 경우 프로그램 전체에서 접근할 수 있는 전역 유효 범위를 가지게 된다. 그러나 함수 내부에서 정의된 매개변수와 변수들은 함수 코드 내부에서만 유효할 뿐 함수 밖에서는 유효하지 않다!. 이것은 달리 말하면 함수 외부의 코드에서 함수 내부의 변수를 엑세스하는 게 불가능 하다는 것이다. 

     

    따라서 라이브러리 코드를 이렇게 즉시 실행 함수 내부에 정의해두게 되면, 라이브러리 내의 변수들은 함수 외부에서 접근할 수 없다. 이렇게 즉시 실행 함수 내에 라이브러리 코드를 추가하면 전역 네임스페이스를 더럽히지 않으므로, 라이브러리 간 변수 충돌 문제를 방지해준다.

     

    내부 함수

    자바스크립트에서는 함수 코드 내부에서도 다시 함수 정의가 가능하다. 이렇게 함수 내부에 정의된 함수를 내부 함수라고 부른다. 이는 클로저를 생성하거나 부모 함수 코드에서 외부에서의 접근을 막고 독립적인 헬퍼 함수를 구현하는 용도 등으로 쓰인다.

     

     

     

    '자바스크립트,제이쿼리' 카테고리의 다른 글

    자바스크립트 this  (0) 2019.11.04
    Handlebars  (0) 2019.10.23
    자바스크립트 프로토타입  (0) 2019.10.18
    자바스크립트 프라미스  (0) 2019.10.16
    자바스크립트 콜백  (0) 2019.10.15
Designed by Tistory.