Du kommer aldrig sluta bli överraskad av JavaScript. I det här snabba tipset ska jag visa dig hur du använder JavaScript-metoderna, ring upp
och tillämpa
, att ringa dina funktioner av andra objekt. Vet inte vad jag menar? Låt oss börja!
Här är scenariot: vi har två objekt:
var joe = namn: "Joe", hälsar: funktion (namn) alert (this.name + "säger hej till" + namn); ; var jill = namn: "Jill";
Det är ganska enkelt att få Joe att hälsa Jill:
joe.greet ( "Jill");
Men hur kan vi få Jill att hälsa Joe? Hon har ingen hälsning metod (och låt oss anta att vi inte kan / ska inte / borde inte ge henne en). Tja, för allt i JavaScript-inklusive funktioner-är ett objekt kan allt ha en metod eller en funktion som kan kallas från den. Funktionerna ges två metoder som låter dig ringa dem i olika sammanhang.
Kontexten av en metod är i grunden det objekt som kommer att bli detta
när funktionen heter. I vår hälsa
metod, detta
avser objektet joe
, eftersom det är vad det är en del av.
Nu, prova det här:
joe.greet.call (jill, "Joe");
De ring upp
Metoden på JavaScript-funktioner gör att du kan ändra funktionens sammanhang. Den första parametern vi skickar in blir det nya sammanhanget: i det här fallet är det jill
. Efterföljande parametrar är parametrarna till funktionen du ringer. I det här fallet kommer "Joe" att skickas till hälsa
. Om du kör detta får du en varningsruta med meddelandet "Jill säger hej till Joe."
Det finns också en tillämpa
metod; Den enda skillnaden är att det tar parametrarna för metoden som en array, snarare än som råparametrar, a la ring upp
metod.
joe.greet.call (jill, ["Joe"]);
Om du har svårt att komma ihåg om det är ring upp
eller tillämpa
Det tar matrisen, kom ihåg det enpply
och enRray börjar båda med "en.”
Tack för att du läser!