this
this는 함수 내에서 함수 호출 맥락(context)를 의미합니다. 맥락이라는 것은 상황에 따라서 달라진다는 의미인데 즉 함수를 어떻게 호출하느냐에 따라서 this가 가리키는 대상이 달라진다는 뜻입니다. 함수와 객체의 관계가 느슨한 자바스크립트에서 this는 이 둘을 연결시켜주는 실질적인 연결점의 역할을 합니다.
함수호출
함수를 호출했을 때 this는 무엇을 가르키는지 살펴봅시다. this는 전역객체인 window와 같습니.
메소드의 호출
객체의 소속인 메소드의 this는 그 객체를 가르킵니다.
생성자의 호출
아래 코드는 함수를 호출했을 때와 new를 이용해서 생성자를 호출했을 때의 차이를 보여줍니다.
생성자는 빈 객체를 만듭니다. 그리고 이 객체내에서 this는 만들어진 객체를 가르킵니다. 이것은 매우 중요한 사실입니다. 생성자가 실행되기 전까지는 객체는 변수에도 할당 될 수 없기 때문에 this가 아니면 객체에 대한 어떠한 작업을 할 수 없기 때문입니다.
apply, call
함수의 메소드인 apply, call을 이용하면 this의 값을 제어할 수 있습니다.
Last updated
Was this helpful?