Skip to content
On this page

2021년 05월 26일

수정하기
문서 생성 2021-05-26 14:51:27 최근 수정 2021-05-26 14:51:34
On this page

Note

JavaScript

  • this
    • 자신이 속한 객체, 자신이 생성할 인스턴스를 가리키는 자기 참조 변수
    • 자바스크립트 엔진에 의해 암묵적으로 생성된다.
    • 함수가 호출되는 방식에 따라 바인딩될 값이 동적으로 결정된다.
      • 일반 함수 내부에서는 전역 객체 window
      • 메서드 내부에서는 메서드를 호출한 객체
        • 메서드 내부의 중첩함수는 일반 함수로 호출되어 this에 전역 객체가 바인되는 문제가 있음
      • 생성자 함수 내부에서는 생성자 함수가 생성할 인스턴스
    • Function.prototype.apply/call/bind 메서드 호출
      • 함수를 호출하면서 첫 번째 인수로 전달한 객체를 호출한 함수의 this에 바인딩
      • apply
        • 호출할 함수의 인수를 배열로 묶어 전달
      • call
        • 호출할 함수의 인수를 쉼표로 구분해서 전달
      • [[유사 배열 객체]]에 배열 메서드를 사용할 때
        • Array.prototype.slice.call(arguments)
      • bind
        • 함수로 호출하진 않고 this로 사용할 객체만 전달
          • thisBinding.bind(thisArg)()
          • 호출하려면 명시적으로 호출
  • 메서드 내 중첩 함수/콜백 함수의 this 바인딩을 메서드의 this 바인딩과 일치시키기
    • 변수할당 방법
    • bind 메서드
    • [[화살표 함수]]
      • [[화살표 함수]] 내부의 this는 상위 스코프의 this를 가리킨다.
  • 실행 컨텍스트
    • ECMAScript의 소스코드 타입, 소스코드 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르기 때문에 구분한다.
      1. 전역 코드
      2. 함수 코드
      3. eval 코드
      4. 모듈 코드
    • 자바스크립트 엔진의 소스코드 처리 과정
      • 소스코드 평가 & 소스코드 실행
      • 평가 과정에서 실행 컨텍스트를 생성 → 변수, 함수 등 선어문 먼저 실행 생성된 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 스코프(Lexical Environment의 environmentRecord)에 등록
      • 평가 과정 후 선언문 제외 코드가 실행(런타임 시작), 실행에 필요한 정보는 실행 컨텍스트가 관리하는 스코프를 검색해서 얻고 실행한 결과는 다시 실행 컨텍스트가 관리하는 스코프에 등록됨

log

  • 🎾 쉬는 날이지만 가서 게임했다. 첫술에 배부를 순 없으니까 더 열심히 하겠다.

LINKS TO THIS PAGE