JavaScript Funktions Apply
- Föregående sida JS-funktion Call
- Nästa sida JS-funktionbindning
Metod återanvändning
Genom apply()
Metoder, du kan skriva metoder för olika objekt.
JavaScript apply() metod
apply()
Metoder och call()
Metoderna är mycket lika:
I detta exempel,person
i fullName
Metoden användsanvändningtill person1
:
Exempel
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply(person1); // kommer att returnera "Bill Gates"
Skillnaden mellan call() och apply()
Skillnaden är:
call()
Metoden accepterar parametrar separat.
apply()
Metoden accepterar parametrar i arrayform.
Om du vill använda en array istället för en parameterlista, apply()
Metoden är mycket bekväm.
Parametrar med apply() metod
apply()
Metod accepterar parametrar i form av array:
Exempel
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName: "Bill", lastName: "Gates" } person.fullName.apply(person1, ["Oslo", "Sweden"]);
och call()
Metodjämförelse:
Exempel
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName: "Bill", lastName: "Gates" } person.fullName.call(person1, "Oslo", "Sweden");
simulera max-metoden på en array
Du kan använda Math.max()
Metoden hittar det största talet i (nummerlistan):
Exempel
Math.max(1,2,3); // Återkommer med 3
Eftersom JavaScript-arrayer inte har en max()-metod, kan du tillämpa Math.max()
Metod.
Exempel
Math.max.apply(null, [1,2,3]); // Återkommer också med 3
Den första parametern (null) är irrelevant. Den användes inte i detta exempel.
Dessa exempel kommer att ge samma resultat:
Exempel
Math.max.apply(Math, [1,2,3]); // Återkommer också med 3
Exempel
Math.max.apply(" ", [1,2,3]); // Återkommer också med 3
Exempel
Math.max.apply(0, [1,2,3]); // Återkommer också med 3
JavaScript-strängsam läge
I JavaScript-strängsam läge, om apply()
Om den första parametern inte är ett objekt, kommer den att bli ägaren till den anropade funktionen (objekt). I "icke-strängsam"-läge blir den global objekt.
- Föregående sida JS-funktion Call
- Nästa sida JS-funktionbindning