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:
thisseadistamine:applymeetodi esimene argument määrabthisväärtuse kutsutava funktsiooni sees. Kui antaksenullvõiundefined, siis mittesõltuvas režiimis viitabthisglobaalsele objektile (näiteks brauseriswindowvõi Node.js-isglobal), ja rangelt režiimis jääb seeundefined.- 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 kasutataksethis-ina funktsiooni kutsumisel.argsArray: massiiv või massiivilaadne objekt, mis sisaldab argumente, mida antakse funktsioonile.
Erinevused call-ga:
applyvõtab argumendid massiivina.callvõtab argumendid eraldi väärtustena, mis järgnevadthisArg-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.
thiskonteksti muutmine funktsiooni kutsumisel.- Kasutamine sisseehitatud meetoditega, mis ootavad palju argumente (näiteks
Math.max,Math.min).