Sobes.tech
Junior

Kuidas töötab apply meetod JavaScriptis?

sobes.tech AI

Vastus AI-lt

apply meetod kutsutakse funktsioonidele ja võimaldab seda funktsiooni kutsuda määratud this väärtuse ja argumentide massiiviga (või massiivilaadse objekti) kasutades.

Peamised aspektid:

  1. this seadistamine: apply meetodi esimene argument määrab this väärtuse kutsutava funktsiooni sees. Kui antakse null või undefined, siis mittesõltuvas režiimis viitab this globaalsele objektile (näiteks brauseris window või Node.js-is global), ja rangelt režiimis jääb see undefined.
  2. Argumentide edastamine: teine argument on massiiv (või massiivilaadne objekt), mille elemendid muutuvad kutsutava funktsiooni argumentideks, järjekorras nende asukoha järgi.

Süntaks:

function.apply(thisArg, argsArray)
  • thisArg: väärtus, mida kasutatakse this-ina funktsiooni kutsumisel.
  • argsArray: massiiv või massiivilaadne objekt, mis sisaldab argumente, mida antakse funktsioonile.

Erinevused call-ga:

  • apply võtab argumendid massiivina.
  • call võtab argumendid eraldi väärtustena, mis järgnevad thisArg-le.

Näide:

// Funktsioon, mis leiab massiivi suurima numbri
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Objekti meetodi kutsumine teise kontekstiga
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };

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

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

Kasutus:

  • Massiivargumentide edastamine funktsioonile, mis ootab neid eraldi parameetritena.
  • this konteksti muutmine funktsiooni kutsumisel.
  • Kasutamine sisseehitatud meetoditega, mis ootavad palju argumente (näiteks Math.max, Math.min).