Call 과 apply 메서드

callapply는 Javascript 함수에서 제공하는 함수를 호출하는데 사용되는 메서드이다.

그리고 둘 다 함수를 호출할 때 this 값을 지정할 수 있게 해줍니다.

call

call 메서드는 첫 번째 인자로 this 값으로 사용될 객체를 받고, 그 이후의 인자들은 호출할 함수의 파라미터로 전달됩니다.

function greet(greeting, punctuation) {
  console.log(greeting + ', ' + this.name + punctuation);
}

const person = {
  name: 'Alice'
};

greet.call(person, 'Hello', '!'); // 출력: "Hello, Alice!"

위 예제에서 greet 함수는 call 메서드를 사용해 호출되며, this 값은 person 객체로 지정됩니다. 따라서 함수 내에서 this.nameAlice를 참조합니다.

apply

apply 메서드는 call과 비슷하지만, 함수에 전달될 인자들을 배열로 받습니다. 첫 번째 인자는 this 값으로 사용될 객체입니다.

function greet(greeting, punctuation) {
  console.log(greeting + ', ' + this.name + punctuation);
}

const person = {
  name: 'Alice'
};

greet.apply(person, ['Hello', '!']); // 출력: "Hello, Alice!"

apply를 사용할 때, 함수의 인자들은 배열의 요소로 전달됩니다. 이는 가변 인자를 가진 함수를 다룰 때 특히 유용합니다.

call vs apply

두 메서드의 주요 차이점은 함수의 인자를 어떻게 전달하는지에 있습니다:

  • call은 인자들을 개별적으로 전달합니다.
  • apply는 인자들을 배열로 전달합니다.

기능적으로는 두 메서드는 동일합니다. 어느 것을 사용할지는 주로 인자들이 어떤 형태로 주어져 있는지에 따라 결정됩니다. 배열 형태로 인자들이 주어지면 apply를, 그렇지 않으면 call을 사용하면 됩니다.

This line appears after every note.

Notes mentioning this note


Here are all the notes in this garden, along with their links, visualized as a graph.