자바스크립트 this의 정의

구남규·2021년 4월 29일
0

자바스크립트에서 사용되는 this는 무엇이고 어떻게 사용되는지

this는 '자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수'다
this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메소드를 참조할 수 있다.

함수를 일반 함수로 호출할 경우,매서드의 내부함수에서, 콜백함수에서 this는 전역 객체를,
메서드로 호출할 경우 이를 호출한 객체를,
생성자 함수를 호출할 경우 생성자 함수가 생성할 인스턴스를 가리키게 됩니다.

function Person(name) {
  this.name = name;
}

var me = new Person('Lee');
console.log(me); // {name: "Lee"}

// new 연산자와 함께 생성자 함수를 호출하지 않으면 생성자 함수로 동작하지 않는다.
var you = Person('Kim');
console.log(you); 

this는 바닐라 자바스크립트 객체지향방식의 코드방식이나, 리액트에서 props 상태를 관리하거나 사용할때 constructor 내부에서 주로 쓰임

Call, Apply, Bind 메소드 사용시 메서드에 첫 번째 인수로 전달하는 객체에 바인딩됩니다.

call
call은 함수의 첫번째 인자로 전달하는 값에 this를 바인딩함

apply
call과 기능은 같으나 인자를 배열의 형태로 전달 (배열 자체가 아니라 배열요소의 값으로 전달)

bind
call과 기능은 같으나 함수를 실행하지 않고 새로운 함수 반환

자바스크립트에서 this는 함수 호출방식에 따라서 동적으로 결정됨

0개의 댓글