프론트엔드/Javascript, TS

javascript의 this란 대체 무엇인가? ②편

데브힐러 2020. 2. 19. 00:31
반응형

 

전편에서 this는 '함수의 invocation(호출)을 위한 binding(바인딩)이며, 이는 call-site(함수를 호출한

위치)에 근거한다.' 라고 정의하였다.

2020/02/13 - [javascript&Node.js] - javascript의 this는 대체 무엇인가? ①편

 

본격적으로 this의 바인딩의 4가지 종류에 대해 알아보자.

 

1) Default Binding

stand alone function invocation할 경우,

즉 global-scope(전역)에서 함수를 호출할 경우 this는 global object를 바인딩 한다.

 


function foo() {
	console.log( this.a );
}

var a = 2;

foo(); // 2

마지막 줄 foo()함수의 호출의 장소, 즉 call-site는 global-scope이다. 따라서 foo()함수에서 this는 global object이다.

콘솔창에서 (this.a)는 global variable(전역변수) a의 값, 즉 2를 출력한다.

 

2) Implicit Binding

 

 

반응형