Einführung
In diesem Lab werden wir das Konzept des Binden von Objektmethoden in JavaScript erkunden. Wir werden eine Funktion erstellen, die eine gegebene Methode eines Objekts an den Kontext dieses Objekts bindet, was es uns ermöglicht, die Methode mit beliebigen zusätzlichen Argumenten, die wir angeben, aufzurufen. Am Ende dieses Labs werden Sie ein tieferes Verständnis dafür haben, wie Sie in JavaScript Objekte und deren Methoden manipulieren.
Funktion zum Binden von Objektmethoden
Um eine Funktion zu erstellen, die eine Objektmethode an ihren Kontext bindet und optional zusätzliche Parameter anhängt, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Definieren Sie eine Funktion, die drei Parameter annimmt: den Objektkontext, den Methodenschlüssel und alle zusätzlichen Argumente, die angehängt werden sollen.
- Die Funktion sollte eine neue Funktion zurückgeben, die
Function.prototype.apply()verwendet, um die Methode an den Objektkontext zu binden. - Verwenden Sie den Spread-Operator (
...), um alle zusätzlichen übergebenen Parameter den Argumenten anzuhängen. - Hier ist eine Beispielimplementierung:
const bindKey =
(context, fn, ...boundArgs) =>
(...args) =>
context[fn].apply(context, [...boundArgs, ...args]);
- Um die Funktion zu testen, erstellen Sie ein Objekt mit einer Methode und binden Sie es mit
bindKey(). Rufen Sie dann die gebundene Methode mit einigen Argumenten auf.
const freddy = {
user: "fred",
greet: function (greeting, punctuation) {
return greeting + " " + this.user + punctuation;
}
};
const freddyBound = bindKey(freddy, "greet");
console.log(freddyBound("hi", "!")); // 'hi fred!'
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab Bind Object Method abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.