[JavaScript] 문제 풀어보기 #3 - this

Sonny·2020년 1월 21일
0

JavaScript

목록 보기
25/29
post-thumbnail

다음 중 this값은?

var obj = {
	a: console.log(this),  		// --- ①
	fn: function() {
		console.log(this); 		// --- ②
		function fn() {
			console.log(this); 	// --- ③
		}
		fn();
	}
}
obj.a;
obj.fn();

문제의 요점

this의 이해

문제의 정답

① window
② obj
③ window

문제 풀이

obj.a()obj.a = console.log(this)와 같다. (① window)
obj.fn()this는 전역에서 obj로 바인딩 되었다. (② obj)
fn()this는 전역을 가리킨다. (③ window)

위치에 따른 this의 값

  • 전역 : window
  • 함수 내부
    - 함수를 실행하게 되면 마지막 .앞을 this로 함수에 전달한다.
    ( a.b.c.fn(); → c를 this로 전달 )
    • .앞에 아무것도 없는 경우, 전역을 전달한다.

this를 바꾸는 방법

  • call
  • apply
    - 첫번째 인자를 this로 변경한다.
  • bind
    - this를 바인딩한 함수를 반환한다.

해당 포스팅은 썬한 코딩, 입사에 필요한 JS기술의 내용을 보며 공부한 것을 정리한 내용입니다.

참고 사이트

profile
FrontEnd Developer

0개의 댓글