← Back to writing

September 26, 2019

What's the difference between JavaScript call and apply

The biggest difference between JavaScript call and apply method is...

JavaScript

You can use call / apply methods to invoke a function immediately.

call and apply methods serve to the same purpose. They call a function with given this value and arguments. While the syntax of both functions is almost same, the main difference is that call accepts arguments as an argument list, however apply accepts a single array of arguments.

Check out the code below to see how call method is used.

function Animal(name, hasWings) {
  this.name = name;
  this.hasWings = hasWings;
}
function Bird(name, hasWings) {
  Animal.call(this, name, hasWings);
  this.canFly = false;
}
console.log(new Bird('Chicken', true).name);

Check out the code below to see how apply method is used.

function Animal(name, hasWings) {
  this.name = name;
  this.hasWings = hasWings;
}
function Bird(name, hasWings) {
  Animal.apply(this, [name, hasWings]);
  this.canFly = false;
}
console.log(new Bird('Chicken', true).name);

See MDN documentation for call and apply for more detail.

P201
WRITING

What's the difference between JavaScript call and apply

The biggest difference between JavaScript call and apply method is... PACKET: 201/01

You can use call / apply methods to invoke a function immediately.

call and apply methods serve to the same purpose. They call a function with given this value and arguments. While the syntax of both functions is almost same, the main difference is that call accepts arguments as an argument list, however apply accepts a single array of arguments.

Check out the code below to see how call method is used.

function Animal(name, hasWings) {
  this.name = name;
  this.hasWings = hasWings;
}
function Bird(name, hasWings) {
  Animal.call(this, name, hasWings);
  this.canFly = false;
}
console.log(new Bird('Chicken', true).name);

Check out the code below to see how apply method is used.

function Animal(name, hasWings) {
  this.name = name;
  this.hasWings = hasWings;
}
function Bird(name, hasWings) {
  Animal.apply(this, [name, hasWings]);
  this.canFly = false;
}
console.log(new Bird('Chicken', true).name);

See MDN documentation for call and apply for more detail.