📗
TIL
  • About
  • javascript
    • GoodParts
      • 프로토타입 방식
      • RegexComponent
      • 재귀적 호출 (Recursive Call)
      • 객체를 기술하는 객체
      • 예외 (Exception)
      • 호출
      • 문자열 (Strings)
      • 참조 (Reference)
      • 배열의 특성들
      • 숫자 (Numbers)
      • 메모이제이션 (Memoization)
      • 모듈 (Module)
      • 열거 (Enumeration)
      • 정규 표현식
      • 정규 표현식 객체 생성
      • 프로토타입 (Prototype)
      • 콜백 (Callback)
      • 문장 (Statements)
      • 함수 표현식 요약
      • 의사 클래스 방식 (Pseudoclassical)
      • 함수를 사용한 방식
      • 클로저 (Closer)
      • 배열 (Array)
      • 기본 타입에 기능 추가
      • 자바스크립트 분석
      • 인수 배열(arguments)
      • Function
      • 유효범위(Scope)
    • YouDon'tKnowJS
      • 타입
      • Native
      • 명시적 강제변환
      • 문자열
      • 함수 vs 블록 스코프
      • 클로저
      • 배열
      • 숫자
      • 연산자 우선순위
      • 스코프
      • 암시적 강제변환
      • 래퍼
      • Statement
      • 호이스팅
      • Coercion
    • javascript
Powered by GitBook
On this page
  • 클로저
  • 블록 스코프
  • 고유 변수

Was this helpful?

  1. javascript
  2. GoodParts

함수 표현식 요약

  • 함수 표현식은 함수 선언과는 다르다. 함수 선언에는 이름이 필요하지만 함수 표현식에는 필요하지 않다. 이름 없는 함수 표현식을 익명 함수라고 부른다.

  • 함수를 참조하는 방법으로 명확히 정의된 것이 없어서 재귀 함수는 더 복잡해졌다.

  • 스트릭트 모드가 아닐 때는 재귀 함수에서 함수 이름 대신 arguments.callee를 써서 자기 자신을 호출한다.

클로저

  • 클로저의 스코프 체인에는 자기 자신과 외부 함수, 전역 컨텍스트의 변수 객체가 담긴다.

  • 일반적으로 함수가 실행을 마치면 함수의 스코프 및 그에 담긴 변수 전체가 파괴된다.

  • 함수가 클로저를 반환했다면 해당 함수의 스코프는 클로저가 존재하는 동안에는 메모리에 계속 존재한다.

블록 스코프

  • 함수를 생성하는 즉시 호출하면 내부의 코드를 실행하지만 그에 관한 참조는 남지 않는다.

  • 결과적으로 함수에서 사용한 변수는 모두 파괴되는데 외부 스코프의 특정 변수로 설정된 변수는 예외다.

고유 변수

  • 자바스크립트에 고유 객체 프로퍼티라는 정식 개념은 없지만 클로저를 쓰면 외부 스코프에 정의된 변수에 접근 가능한 공용 메서드를 구현할 수 있다.

  • 고유 변수에 접근 가능한 메서드를 특권 메서드라고 부른다.

  • 특권 메서드를 커스텀 타입에서 구현하려면 생성자나 프로토타입 패턴을 이용하고, 싱글톤에서 구현하려면 모듈이나 모듈 확장 패턴을 이용한다.

Previous문장 (Statements)Next의사 클래스 방식 (Pseudoclassical)

Last updated 4 years ago

Was this helpful?