라벨이 함수인 게시물 표시

[JavaScript] this

this란 this를 포함하고 있는 함수 또는 메서드가 자신을 포함하고 있는 객체를 가리키도록 약속된 특수한 예약어다. 간단히 말하면 this는 자신을 호출하는것을 가리킨다. this를 위에서 처럼 정의했지만 상황에 따라 조금씩 다르게 동작한다. this는 일반 함수에서 사용할 때와 화살표 함수에서 사용할 때 다르게 동작한다. 일반 함수에서의 this는 호출할때의 환경에 따라 즉, 런타임 환경에서 this의 값이 동적으로 결정되는것이고 화살표함수에서의 this는 선언된 시점에서의 환경(lexical scoping)에 따라 정적으로 결정되는 것이다. 조금더 자세히 알아보면 상황에 따라 다르게 동작하는 this 1. 함수(메서드) 안에서의 this // 함수 안에서의 this function functionThis () { console . log ( this ); } functionThis (); // window (전역)함수를 선언하면 this는 window 객체를 가리킨다.  함수가 전역에 선언되어있으면 해당 함수는 전역 객체인 Window 안에서 함수가 선언되는 것이기 때문에 함수이면서 동시에 메서드이다.  위 함수(메서드)가 호출되면 함수 안에있는 console.log(this)는 해당 함수를 소유하고있는 객체인 window를 가리킨다는것을 알 수 있다. 여기서 메서드란 객체가 가지고 있는 함수를 말한다. // 메서드 안에서의 this let methodThis = { test : true , methodTest : function () { console . log ( this . test ); // true }, // methodTest() { // console.log(this.test); 위의 메서드를 이와 같이 줄여서 작성할 수 있다. // }, }; 위와 같이 객체안에 메서드를 작성한 경우 메서드를 소유하고 있는 객체인 methidThis는 this가 가리키는 대상이 된다. 2...