this -Core JavaScript

자바스크립트에서의 this는 어디서든 사용할 수 있습니다.
this는 상황에 따라 참조하는 대상이 달라질 수 있습니다.
함수와 객체(메서드) 구분이 느슨한 자바스크립트에서 이 둘을 구분하는 유일한 기능입니다.

  • this
    • 상황에 따라 달라지는 this
      • 전역 공간에서의 this
      • 메서드로서 호출할 때 메서드 내부의 this
        • 함수 vs 메서드
        • 메서드 내부에서의 this
      • 함수로서 호출할 때 그 함수 내부에서의 this
        • 함수 내부에서의 this
        • 메서드의 내부함수에서의 this
        • 메서드 내부 함수에서의 this를 우회하는 방법
        • this를 바인딩하지 않는 함수
      • 콜백 함수 호출시 그 함수 내부에서의 this
      • Class 함수 내부에서의 this
    • 명시적으로 this를 바인딩하는 방법
      • call 메서드
      • apply 메서드
      • call / apply 메서드의 활용
        • 생성자 내부에서 다른 생성자를 호출
        • 여러 인수를 묶어 하나의 배열로 전달
      • bind 메서드
        • name 프로퍼티
        • 상위 컨텍스트의 this를 내부함수나 콜백 함수에 전달하기
      • 화살표 => 함수의 예외사항
      • 별도의 인자로 this를 받는 경우(콜백 함수 내에서의 this)
    • this 정리
자세히 보기

실행 컨텍스트 -Core JavaScript

실행 컨텍스트(execution context)는 실행할 코드에 제공할 환경 정보를 모아놓은 객체로,
자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념입니다.
자바스크립트는 실행 컨텍스트가 활성화되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅), 외부 환경 정보를 구성하고, this 값을 설정하는 등의 동작을 수행하는데, 이로 인해 다른 언어에서는 발견할 수 없는 특이한 현상들이 발생합니다.

자세히 보기

Class 오브젝트 -ECMAScript

Class(클래스)를 완전하게 이해하려면 객체지항 프로그래밍(OOP:Object Oriented Programming)에 대한 이해가 필요합니다.

OOP만 다루는 책이 있을 정도로 범위가 넓고 깊으므로
OOP는 나중에 자세히 다루고 ES6기준으로 살펴봅니다.

자세히 보기

Arrow (화살표 함수) -ECMAScript

arrow(화살표) 함수는
function(param) {코드} 형태를 축약한 것으로

(param) => {코드}

형태로 작성합니다.

화살표 함수 표현(arrow function expression)은 function 표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다.
화살표 함수는 항상 익명입니다. 이 함수 표현은 메소드 함수가 아닌 곳에 가장 적합합니다. 그래서 생성자로서 사용할 수 없습니다.

자세히 보기