남과 같이 해선 남 이상이 될 수 없다.

JavaScript

[Javascript] this 간단 정리

맨동 2022. 3. 16. 20:33
728x90

자바스크립트 this

객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다.

메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다.

 

자바스크립트는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 특수한 식별자 this 를 제공한다.

 

this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수이다.

 

this는 자바스크립트 엔진에 의해 암묵적으로 생성되며, 코드 어디서든 참조할 수 있다.

함수를 호출하면 arguments 객체와 this가 암묵적으로 생성된다.

 

여기서 this가 가리키는 값, this 바인딩은 함수 호출 방식에 의해 동적으로 결정이 된다.

더보기

바인딩이란 식별자와 값을 연결하는 과정을 의미한다. 예를 들어, 변수 선언은 변수 이름과 확보된 메모리 공간의 주소를 바인딩하는 것이다. this 바인딩은 this와 this가 가리킬 객체를 바인딩하는 것이다.

 

정리 :

함수 호출 방식  this 바인딩
일반 함수 호출 전역 객체
메서드 호출 메서드를 호출한 객체
생성자 함수 호출 생성자 함수가 생성할 인스턴스
apply/call/bind 메서드에 의한 간접 호출 메서드에 첫번째 인수로 전달한 객체

 

일반 함수 내부의 this는 strict 모드에서 undefined가 바인딩된다. 일반 함수에서 this를 참조할 필요가 없기 때문이다.

일반 함수로 호출된 모든 함수(중첩 함수, 콜백 함수 포함) 내부의 this에는 전역 객체가 바인딩된다.

728x90