call, apply, bind를 시작하기 전에 this

2020. 8. 11. 20:55javascript

this?

현재 메소드가 실행되는 '객체'를 지정한다고 할 수 있다.

예를 들어, 크롬 콘솔창에 아래와 같이 함수를 만들어보자.

function add(num1,num2){
	console.log(this);
	return num1+num2;
}

add(1,2);
//Window {...}
//3

위의 add는 전역에서 생성된 것이므로 해당 함수는 window에서 실행이된다. 이때를 '전역문맥'이라고 한다.

 

만약 다른 객체에 함수를 만들어 실행시킨다면 this는 변경이된다.

let obj = {
    num1 : 2, 
    num2 : 3, 
    add : function(num1,num2){
        console.log(this);
        return num1+num2
}}

obj.add(obj.num1, obj.num2)
//{num1: 2, num2: 3, add: ƒ}
//5

this는 단순히 사용하는 것보다 call,apply,bind와 같이 쓰면 다른 객체의 기능을 빌려쓰는 방법을 가질 수 있다.

'javascript' 카테고리의 다른 글

call, apply, bind (2) - apply  (0) 2020.08.28
call, apply, bind (1) - call  (0) 2020.08.22
Callback function  (0) 2020.08.11
Javascript - ES6 Class & super  (0) 2020.07.30
Javascript - Object Oriented Programming(OOP)  (0) 2020.07.29