Schnelltipp Aufrufen von JavaScript-Methoden für andere Objekte

Sie werden nie aufhören, von JavaScript überrascht zu werden. In diesem kurzen Tipp werde ich Ihnen zeigen, wie Sie die JavaScript-Methoden verwenden, Anruf und sich bewerben, um die Funktionen anderer Objekte aufzurufen. Weiß nicht was ich meine Lass uns anfangen!

Screencast anzeigen

Verwenden von Anrufen und Anwenden

Hier ist das Szenario: Wir haben zwei Objekte:

var joe = name: "Joe", grüße: function (name) alert (this.name + "sagt hallo zu" + name); ; var jill = name: "Jill";

Es ist ziemlich einfach, Joe dazu zu bringen, Jill zu begrüßen:

joe.greet ("Jill");

Aber wie können wir Jill dazu bringen, Joe zu begrüßen? Sie hat keine Begrüßungsmethode (und nehmen wir an, wir können / wollen / dürfen sie nicht). Nun, da alles in JavaScript, einschließlich Funktionen, ein Objekt ist, kann alles über eine Methode oder eine Funktion verfügen, die von dort aus aufgerufen werden kann. Für Funktionen gibt es zwei Methoden, mit denen Sie sie in verschiedenen Kontexten aufrufen können.

Der Kontext einer Methode ist im Wesentlichen das Objekt, das es sein wird diese wenn die Funktion aufgerufen wird. In unserer grüßen Methode, diese bezieht sich auf das Objekt Joe, denn davon ist es ein Teil von.

Versuchen Sie es jetzt:

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

Das Anruf Mit der Methode für JavaScript-Funktionen können Sie den Kontext der Funktion ändern. Der erste Parameter, den wir übergeben, ist der neue Kontext: In diesem Fall ist das Jill. Nachfolgende Parameter sind die Parameter für die aufgerufene Funktion. In diesem Fall wird „Joe“ an übergeben grüßen. Wenn Sie dies ausführen, erhalten Sie eine Warnmeldung mit der Meldung "Jill sagt Hallo zu Joe".

Es gibt auch eine sich bewerben Methode; Der einzige Unterschied besteht darin, dass die Parameter der Methode als Array und nicht als Rohparameter verwendet werden Anruf Methode.

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

Wenn es Ihnen schwer fällt, sich zu erinnern, ob es ist Anruf oder sich bewerben das nimmt das Array, denken Sie daran einpply und einBeide beginnen mit "ein.”

Danke fürs Lesen!