본문 바로가기

Web/Javascript

CALL, APPLY, BIND 메소드

call, apply, bind 메소드


func.call(thisArg[, arg1[, arg2[, ...]]])

func.apply(thisArg, [argsArray])

func.bind(tihsArg[, arg1[, arg2[, ...]]])


첫번째 인자는 this가 될 대상을 지정

두번째 인자부터는 매개변수가 된다.


call 과 apply의 차이는 두번째부터 쭉 나열해서 매개변수를 받느냐

아니면 두번째 인자 하나에 배열로 합쳐서 하나의 인자로 받느냐의 차이일 뿐이다.


call과 apply는 즉시 호출하는 명령이다. 반면 bind는 새로운 함수를 생성 할 뿐 호출을 하지는 않는다.


function a(x, y, z) {
  console.log(this, x, y, z);
}

var b = {
  c: 'eee'
};

a.call(b, 1, 2, 3);
a.apply(b, [1, 2, 3]);

var c = a.bind(b);
c(1, 2, 3);

var d = a.bind(b, 1, 2);
d(3);

'Web > Javascript' 카테고리의 다른 글

PROTOTYPE  (0) 2018.01.15
클로저(CLOSURE)  (0) 2018.01.11
THIS  (0) 2018.01.11
함수  (0) 2018.01.11
DATA TYPES  (0) 2018.01.11