English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MethodeEs ist ein mit einem Objekt, oder mit einer damit verbundenen Funktion, eine Methode ist ein Objekt, das eine Eigenschaft der Funktion ist.
Die Definition von Methoden erfolgt auf die gleiche Weise wie die Definition von normalen Funktionen, der Unterschied besteht darin, dass sie als Attribute des Objekts zugewiesen werden müssen.
Um Methoden eines Objekts abzurufen, rufen Sie sie auf die gleiche Weise auf wie eine normale Funktion, nur dass Sie sie an den Variablenwert des Objekts anhängen.
// Objekt erstellen var user = { firstName: "Seagull", lastName : "an", age: 22, location: "New Delhi", getName : function() { return this.firstName + "" + this.lastName; } }; //Zugriff auf die getName()-Methode user.getName();Testen Sie heraus‹/›
Wenn Sie eine Methode ohne Klammern () aufrufen, wird die Funktionsdefinition zurückgegeben:
user.getName;Testen Sie heraus‹/›
JavaScript hat ein spezielles Schlüsselwort "this", das Sie in Methoden verwenden können, um auf das aktuelle Objekt zu verweisen.
Sie haben vielleicht bemerkt, dass unsere Methoden etwas seltsam sind. Nimm diesen Beispielcode:
getName: function() { return this.firstName + "" + this.lastName; }
Das Schlüsselwort "this" bezieht sich auf den aktuellen Objektbereich, in dem der Code geschrieben wird-Daher ist in diesem Fall this gleichuser.
Mit anderen Worten, this.firstName bedeutetDieses Objektder Attribut "firstName".
Sie können es imJS-SchlüsselwörterTutorialIn JSErfahren Sie mehr über das Schlüsselwort "this".
Um neuen Methoden zu einem Objekt hinzuzufügen, können Sie den Zuweisungsoperator (=) verwenden, um die neue Funktion als Attribut zuzuweisen.
Dieser Beispielcode fügt dem Benutzerobjekt die "greet"-Methode hinzu:
user.greet = function() { return "Hello World"; };Testen Sie heraus‹/›
ECMAScript 5(2009) hat Getters und Setters eingeführt.
Getter ist eine Methode, um einen bestimmten Attributwert zu erhalten.
Setter ist eine Methode, um einen bestimmten Attributwert zu setzen.
Getter und Setter können auf jeder vorgegebenen Kernobjekt oder benutzerdefinierten Objekt definiert werden, die neue Attribute hinzufügen unterstützen.
Dieser Beispiel verwendet get locEigenschaft alslocationWert der Eigenschaft:
//Ein Objekt erstellen var user = { firstName: "Seagull", lastName: "Anna", age: 22, location: "New Delhi", get loc() { return this.location; } }; //Zeige Daten aus dem Objekt an document.getElementById("para").innerHTML = user.loc;Testen Sie heraus‹/›
Dieser Beispiel verwendet set locEigenschaft alslocationWert der Eigenschaft:
// Objekt erstellen var user = { firstName: "Seagull", lastName: "Anna", age: 22, location: "New Delhi", set loc(x) { this.location = x; } }; // Objektattribute mit Setter setzen user.loc = "Goa"; // Zeige Daten aus dem Objekt an document.getElementById("para").innerHTML = user.location;Testen Sie heraus‹/›
Die folgenden beiden Beispiele zeigen den Unterschied zwischen function und getter:
//Objekt erstellen var user = { firstName: "Seagull", lastName: "Anna", age: 22, location: "New Delhi", fullName: function() { return this.firstName + "" + this.lastName; } }; // Zeige Daten aus dem Objekt an document.getElementById("para").innerHTML = user.fullName();Testen Sie heraus‹/›
// Objekt erstellen var user = { firstName: "Seagull", lastName: "Anna", age: 22, location: "New Delhi", get fullName() { return this.firstName + "" + this.lastName; } }; //Zeige Daten aus dem Objekt an document.getElementById("para").innerHTML = user.fullName;Testen Sie heraus‹/›
Beispiel1 Setzen Sie fullName alsFunktionZugriff: user.fullName()。
Beispiel2 Setzen Sie fullName alsEigenschaftZugriff: user.fullName.
Verwendung von Getters und Setters:
Es bietet eine einfachere Syntax
Es ermöglicht eine Syntax für Attribute und Methoden, die identisch ist
Es stellt sicher, dass eine bessere Datenqualität gewährleistet wird
Sehr nützlich für die Backend-Verarbeitung
Die Methode Object.defineProperty() kann auch zur Hinzufügung von Getter und Setter verwendet werden.
Object.defineProperty(object, property, {value : value})
Lassen Sie uns den "Zähler"-Objekt als Beispiel nehmen:
var counter = {i : 0}; Object.defineProperty(counter, "increment", { get: function() {this.i++;} }); Object.defineProperty(counter, "decrement", { get: function() {this.i--;} }); Object.defineProperty(counter, "reset", { get: function() {this.i = 0;}, }); Object.defineProperty(counter, "add", { set: function (value) {this.i += value;} }); Object.defineProperty(counter, "subtract", { set: function (value) {this.i -= value;} }); counter.reset; counter.add = 25; counter.increment;Testen Sie heraus‹/›