Sobes.tech
Junior

Jak funguje metoda apply v JavaScriptu?

sobes.tech AI

Odpověď od AI

Metoda apply se volá na funkce a umožňuje zavolat tuto funkci s danou hodnotou this a argumenty předanými ve formě pole (nebo objektu podobného poli).

Hlavní aspekty:

  1. Nastavení this: První argument metody apply určuje hodnotu klíčového slova this uvnitř volané funkce. Pokud předáte null nebo undefined, v non-striktním režimu bude this odkazovat na globální objekt (například window v prohlížeči nebo global v Node.js), a v striktním režimu zůstane undefined.
  2. Předání argumentů: Druhý argument je pole (nebo objekt podobný poli), jehož prvky se stanou argumenty volané funkce, v pořadí, v jakém jsou v poli.

Syntaxe:

function.apply(thisArg, argsArray)
  • thisArg: Hodnota, která bude použita jako this při volání funkce.
  • argsArray: Pole nebo objekt podobný poli obsahující argumenty, kterými bude funkce volána.

Rozdíly od call:

  • apply přijímá argumenty jako pole.
  • call přijímá argumenty jako samostatné hodnoty, uvedené za thisArg.

Příklad použití:

// Funkce pro výpočet maximálního čísla v poli
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Volání metody objektu s jiným kontextem `this`
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };

function greet(greeting, punctuation) {
  console.log(`${greeting}, ${this.name}${punctuation}`);
}

greet.apply(person1, ['Hello', '!']); // Hello, Alice!
 gree.apply(person2, ['Hi', '?']);    // Hi, Bob?

Použití:

  • Předání pole argumentů funkci, která je očekává jako samostatné parametry.
  • Změna kontextu this při volání funkce.
  • Použití s vestavěnými metodami, které očekávají více argumentů (například Math.max, Math.min).