Frontend/JavaScript

javaScript의 this | 상황별 어디에 바인딩 될까?

섕걍 2023. 3. 31. 16:52

1. javaScript에서 this는 다른 언어의 개념과 조금 다르다.

java에서의 this는 인스턴스자신을 가리키지만,

 

js의 this는 객체를 가리키는 키워드이다.

js의 this는 함수를 호출한 방법에 의해 결정된다.

간단하게 this앞에 호출한 객체에 따라 결정이 되는것이다.


2. this바인딩은 함수 호출 방식에 의해 동적으로 결정된다.

1 ) 전역에서의 this는 window 객체 

console.log(this)
console.log(this===window);

2 ) 함수내부에서 this는 window를 가리킨다.

function test() {
	console.log(this);
   
}

test();

//window

 


3. this를 지정해주고싶을때 bind()를 사용 | bind는 함수에 한번만 사용할 수 있다. 

function test() {
	console.log(this);
   
}

const person = {
	name: 'test입니다'
}

const bindPrint = test.bind(person);

bindPrint();
//{name:'test입니다'}

오늘은 요정도로!