개발모음집

js call, apply, bind 본문

client

js call, apply, bind

void 2020. 2. 11. 10:00

call, apply 는 선언한 함수를 호출하는 방법 중에 하나이다.

apply, call 함수는 내부의 this를 바꾸는 역할을 한다.

출처 : https://medium.com/@rnrjsah789/%EC%95%8C%EB%8B%A4%EA%B0%80%EB%8F%84-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EB%8A%94-apply-call-%EA%B7%B8%EB%A6%AC%EA%B3%A0-bind%EC%99%80-this-fb3cb90cb0c3

 

var example = function (a, b, c) {
  return a + b + c;
};
example(1, 2, 3); // 주로 쓰는 함수 호출법
example.call(null, 1, 2, 3); // null은 this 자리이다.
example.apply(null, [1, 2, 3]); //  this는 기본적으로 window라고 했었죠. 
//call, apply, bind에서 첫 번째 인자로 다른 것을 넣어주는 게 this를 바꾸는 방법 중 하나이다.


// bind 함수는 this를 바꾸는 역할을 하는데, 호출까지는 하지 않는다.

var yell2 = obj.yell.bind(obj2);
yell2(); // 'what?'

 

출처 : https://www.zerocho.com/category/JavaScript/post/57433645a48729787807c3fd

 

apply, call 함수는 내부의 this를 바꾸는 역할을 한다.

출처 : https://medium.com/@rnrjsah789/%EC%95%8C%EB%8B%A4%EA%B0%80%EB%8F%84-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EB%8A%94-apply-call-%EA%B7%B8%EB%A6%AC%EA%B3%A0-bind%EC%99%80-this-fb3cb90cb0c3

 

 

그래서 유사배열에서 배열의 메서드를 사용하기위해 call,apply, bind 메서드를 사용하여 . 배열 프로토타입에서 배열 메서드를 빌려온다.

'client' 카테고리의 다른 글

TypeScript eslint : Unable to resolve path to module './app' import/no-unresolved  (0) 2020.02.24
js window, 유사배열, 스코프  (0) 2020.02.12
js 전개 연산자, ...  (0) 2020.02.05
js reduce  (0) 2020.02.04
apply eslint at window os  (0) 2020.02.03