The apply() Method in JavaScript

🧠 What is apply()?

The apply() method is very similar to call() — it invokes a function with a specified this value, but instead of passing arguments individually, it takes them as an array (or an array-like object). 📦

Note

💡 Use apply() when you want to call a function and already have arguments in an array.

📌 Syntax

apply() Syntax

functionName.apply(thisArg, [argsArray]);

- thisArg: The object to be used as this- [argsArray]: An array or array-like object containing the arguments

⚙️ Basic Example

Using apply()

function introduce(language, age) {
  console.log(`${this.name} speaks ${language} and is ${age} years old.`);
}

const user = { name: "Luna" };

introduce.apply(user, ["JavaScript", 21]);
// Luna speaks JavaScript and is 21 years old.

🆚 apply() vs call()

call() vs apply()

const person = { name: "Leo" };

function say(greeting, emoji) {
  console.log(`${greeting}, ${this.name} ${emoji}`);
}

say.call(person, "Hello", "👋");           // arguments passed individually
say.apply(person, ["Hello", "👋"]);        // arguments passed as array

Note

📚 Use call() when arguments are available individually, and apply() when they’re already grouped in an array.

📊 Practical Use Case: Math.max

Math.max with apply()

const numbers = [5, 9, 2, 8, 3];

const max = Math.max.apply(null, numbers);
console.log(max); // 9

Math.max doesn’t accept arrays directly — so apply() is handy here to spread the array as arguments.

🧪 Example: Borrowing Methods

Using apply() to borrow array methods

const arrayLike = {
  0: "apple",
  1: "banana",
  2: "cherry",
  length: 3
};

const fruits = Array.prototype.slice.apply(arrayLike);
console.log(fruits); // ["apple", "banana", "cherry"]

Note

🍎 apply() lets you convert array-like objects into actual arrays by borrowing methods like slice.

📚 Summary Table

FeatureDetails
Function contextLets you specify the this value
Arguments formatPassed as an array
Primary use casesDynamic function calls, method borrowing, dealing with array-like objects

🔗 Related Methods

>>“Knowing when to use apply() is key to mastering function flexibility in JavaScript.” 🧠