6.8 call과 apply, bind

1) call

  • call 메서드는 모든 함수에서 사용할 수 있음

  • this를 특정 값으로 지정할 수 있음

  • 일반적인 함수와 마찬가지로 매개변수를 직접 받음

const bruce = { name: "Bruce" };
const madeline = { name: "Madeline" };

function greet() {
  return "Hello, I'm " + this.name;
}

console.log(greet()); // Hello, I'm
console.log(greet.call(bruce)); // Hello, I'm Bruce
console.log(greet.call(madeline)); // Hello, I'm, Madeline

2) apply

  • 매개변수를 배열로 받음

const arr2 = [ 2, 3, -5, 15, 7 ];
console.log(Math.min.apply(null, arr2)); // -5
console.log(Math.max.apply(null, arr2)); // 15

3) bind

  • 함수의 this 값을 영구히 바꿀 수 있음

  • 따라서 찾기 어려운 버그의 원인이 될 수 있음

Last updated