IT/JSP&javascript&jQuery

[자바스크립트] this

바다, 2021. 3. 12. 16:11
반응형

자바에서의 this

 

- 인스턴스 자신을 가르키는 참조 변수

즉, this가 객체 자신에 대한 참조 값을 가지고 있다.

주로 매개변수와 객체 자신이 가지고 있는 멤버 변수명이 같을 경우, 이를 구분하기 위해 사용한다.

 

자바의 경우 this에 바인딩되는 객체가 하나지만,

자바스크립트에서의 this는 해당 함수 호출 방식에 따라 this에 바인딩 되는 객체가 달라지기 때문에 전혀 다른 의미를 갖는다.

 

함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다.

 

1. 함수 호출

 

- 기본적으로 this는 전역 객체에 바인딩 된다.

전역함수, 내부함수, 콜백함수 관계 없이 this는 전역 객체에 바인딩된다.

 

2. 메서드 호출

 

- 함수가 객체의 프로퍼티 값이면 메서드로서 호출된다.

메서드 내부의 this는 해당 메서드를 소유한 객체

즉, 해당 메서드를 호출한 객체에 바인딩 된다.

 

3. 생성자 함수 호출

 

- 자바의 생성자 함수와는 다르게 형식이 정해져 있지 않고,

기존 함수에 new 연산자를 붙여서 호출하면 해당 함수는 생성자 함수로 동작한다.

 

4. apply / call / bind 호출

 

- apply(), call(), bind()로 함수를 호출할 때, 함수의 this는 첫 번째 인자로 넘겨받은 객체를 참조한다.

 

 

반응형