웹 개발 Web Development/Javascript
This 의 개념
코딩고블린
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)