Fungsi JavaScript Terapkan
Metode Penggunaan Kembali
Dengan apply()
metode, Anda dapat menulis metode yang dapat digunakan pada objek yang berbeda.
JavaScript berlaku () Metode
Metode apply()
ini mirip dengan call()
metode (bab sebelumnya).
Dalam contoh ini metode fullName person diterapkan pada person1 :
Contoh
const person = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person1 = {
firstName: "Mary",
lastName: "Doe"
}
// This will return "Mary Doe":
person.fullName.apply(person1);
Perbedaan Antara call() dan apply()
Perbedaannya adalah:
Metode call()
ini mengambil argumen secara terpisah .
Metode apply()
ini mengambil argumen sebagai array .
Metode apply() sangat berguna jika Anda ingin menggunakan array alih-alih daftar argumen.
Metode apply() dengan Argumen
Metode apply()
menerima argumen dalam array:
Contoh
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);
Dibandingkan dengan call()
metode:
Contoh
const person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName
+ "," + city + "," + country;
}
}
const person1 = {
firstName:"John",
lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");
Simulasikan Metode Maks pada Array
Anda dapat menemukan angka terbesar (dalam daftar angka) menggunakan Math.max()
metode:
Contoh
Math.max(1,2,3); // Will return 3
Karena larik JavaScript tidak memiliki metode max(), Anda dapat menerapkan
Math.max()
metode tersebut sebagai gantinya.
Contoh
Math.max.apply(null, [1,2,3]); // Will also return 3
Argumen pertama (null) tidak masalah. Ini tidak digunakan dalam contoh ini.
Contoh-contoh ini akan memberikan hasil yang sama:
Contoh
Math.max.apply(Math, [1,2,3]); // Will also return 3
Contoh
Math.max.apply(" ", [1,2,3]); // Will also return 3
Contoh
Math.max.apply(0, [1,2,3]); // Will also return 3
Mode Ketat JavaScript
Dalam mode ketat JavaScript, jika argumen pertama dari apply()
metode ini bukan objek, ia menjadi pemilik (objek) dari fungsi yang dipanggil. Dalam mode "tidak ketat", itu menjadi objek global.