자바스크립트 함수의 기본 메소드(call, apply, bind)
1번 방식의 경우, 우리가 가장 흔히 사용하는 방식이기 때문에 설명은 생략한다
함수 내에서의 'this'
첫번째 매개변수: 함수의 실행문맥의 this를 지정하는 매개변수 -> 즉, 함수 내에서 this는 call() 메소드의 첫번째 인자를 가리킨다
나머지 인수: 호출할 함수의 인수
thisArg: 함수 내부에서 this가 가리치는 값(call() 메소드와 동일함)
argsArray: 함수에서 필요로 하는 인수를 유사배열에 넣어서 재공
--> call() 과 apply는 첫번째 인자가 this를 대체하는 것이 동일하고 뒤에 함수에 제공되는 인수들이 어떤 형식으로 제공되는지 (배열 또는 각각의 인자)의 차이가 있다
thisArg: 함수의 this에 전달하는 값
arg1, arg2, ... : 대상 삼수의 인수 앞에 사용될 인수
*일반적으로 함수에서 this를 console로 출력해보면, this는 기본적으로 전역객체 window를 가리키는데, call, apply, bind 메소드를 통해서 함수의 this를 변경할 수 있다
--> 함수 내에서 this를 통해 나타내고 있는 값 등을 call, apply, bind를 통해서 재정의해서 사용한다는 것!!! 즉, 함수에 기본 속성 arguments(유사배열)를 수정해서 사용할 수 있다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/call
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/bind