코딩고블린 2020. 6. 6. 16:04

 

THIS

Javascript에서 This란, 어떤 공간에서 정의, 호출되느냐에 따라 다르게 추론한다.

컨텍스트가 생성 될 때, 그 환경에 따라 그 값이 다르게 정의된다.

 

전역 공간 window, global
함수 내부 window, global
호출된 메소드 메소드를 호출한 객체, 함수
Callback 함수 전역 객체 (제어권을 가진 함수를 통해 명시적으로 this 를 바인딩 할 수 있음 ex. call / apply / bind)
생성자 함수 인스턴스

 

Call / Apply / Bind

자바스크립트에서 함수가 가진 기본 메소드로, 현재 함수 실행환경의 this 외부 함수의 this 대체해 사용할 있도록 하는 프로퍼티다.

 

보통의 함수가 호출형태에 따라 this가 달라지는 반면, call,apply,bind메서드는 외부에서 할당하는 첫번째 인자가 함수의 this 된다.

 

// 큐 배열의 최대값을 구하는 방법

let queue = [1,5,9,10,11]
let max = Math.max.apply(null, queue); //Math.max 메서드의 인자에 null을 넣어 this 를 초기화 한다

consol.log(max)