Snabbtips Ringa JavaScript-metoder på andra objekt

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!

Visa skärmdump

Använda samtal och tillämpa

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!