Snelle tip JavaScript-methoden voor andere objecten aanroepen

Je zult nooit ophouden verrast te zijn door JavaScript. In deze snelle tip laat ik u zien hoe u de JavaScript-methoden gebruikt, telefoontje en van toepassing zijn, om je functies van andere objecten te bellen. Weet niet wat ik bedoel? Laten we beginnen!

Bekijk Screencast

Oproep gebruiken en toepassen

Dit is het scenario: we hebben twee objecten:

var joe = name: "Joe", greet: function (name) alert (this.name + "zegt hallo tegen" + naam); ; var jill = name: "Jill";

Het is vrij eenvoudig om Joe Jill te laten groeten:

joe.greet ( "Jill");

Maar hoe kunnen we Jill Joe laten groeten? Ze heeft geen begroetingsmethode (en laten we aannemen dat we haar niet kunnen / willen / niet geven). Nou, omdat alles in JavaScript-inclusief functies-een object is, kan alles een methode hebben, of een functie die ervan kan worden opgeroepen. Functies krijgen twee methoden waarmee je ze in verschillende contexten kunt oproepen.

De context van een methode is in feite het object dat zal zijn deze wanneer de functie wordt aangeroepen. In onze begroeten methode, deze verwijst naar het object joe, omdat dat is waar het onderdeel van is.

Probeer dit nu:

joe.greet.call (jill, "Joe");

De telefoontje Met de methode voor JavaScript-functies kunt u de context van de functie wijzigen. De eerste parameter die we doorgeven is de nieuwe context: in dit geval is dat Jill. Daaropvolgende parameters zijn de parameters voor de functie die u aanroept. In dit geval wordt "Joe" doorgegeven aan begroeten. Als u dit uitvoert, ontvangt u een waarschuwingsvenster met het bericht "Jill zegt hallo tegen Joe."

Er is ook een van toepassing zijn methode; het enige verschil is dat het de parameters van de methode als een array neemt, in plaats van als ruwe parameters, a la de telefoontje methode.

joe.greet.call (jill, ["Joe"]);

Als je het moeilijk hebt om te onthouden of het is telefoontje of van toepassing zijn dat neemt de reeks, onthoud dat eenpply en eenrray beide beginnen met "een.”

Bedankt voor het lezen!