Explicit Binding (call/apply/bind)

Explicit Binding

Function.prototype.call, Function.prototype.bind, Function.prototype.apply를 사용하여 this의 값을 우리가 직접 지정해주는 방식입니다.

Example #1

var age = 100;

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

var ken = {
  age: 35
};

var wan = {
  age: 31
};

foo();  // ?
foo.call(wan); // ?
foo.apply(ken); // ?

Example #2

var age = 100;

function foo (a,b,c,d,e) {
  console.log(this.age);
  console.log(arguments);
}

var ken = {
  age: 35
};

foo.call(ken, 1, 2, 3, 4, 5);
foo.apply(ken, [ 1, 2, 3, 4, 5 ]);

Example #3

var age = 100;

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

var ken = {
  age: 34
};

var bar = foo.bind(ken);

bar(); // ?

Example #4

var age = 100;

function foo () {
  console.log(this.age);
  console.log(arguments);
}

var ken = {
  age: 34
};

var bar = foo.bind(ken);

bar(1, 2, 3, 4, 5);

강의에 등록된 질문이 없습니다. 궁금한 부분이 있으면 주저하지 말고 무엇이든 물어보세요.