Neueste Web-Entwicklung Tutorials
 

JavaScript Object Prototypen


Jedes JavaScript-Objekt hat einen Prototyp. Der Prototyp ist auch ein Ziel.

Alle JavaScript-Objekte erben ihre Eigenschaften und Methoden von ihrem Prototyp.


JavaScript Prototypen

Alle JavaScript-Objekte erben die Eigenschaften und Methoden von ihrem Prototyp.

Objekte erstellt ein Objektliteral, oder mit der Verwendung von new Object() , erben von einem Prototyp namens Object.prototype.

Objekte mit erstellt new Date() erben die Date.prototype.

Die Object.prototype ist auf der Oberseite der Prototypkette.

Alle JavaScript - Objekte (Date, Array, RegExp, Function, ....) erben von der Object.prototype .


Erstellen eines Prototype

Die Standard-Weg, um einen Prototyp zu erstellen, ist ein Objekt Konstruktor-Funktion verwenden:

Beispiel

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}

Mit einer Konstruktor - Funktion können Sie das verwenden new Schlüsselwort , um neue Objekte aus dem gleichen Prototyp zu erstellen:

Beispiel

var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Versuch es selber "

Die Konstruktorfunktion ist der Prototyp für Person - Objekte.
Es ist gute Praxis, Namen Konstruktor-Funktion mit einem Großbuchstaben Anfangsbuchstaben betrachtet.


Hinzufügen von Eigenschaften und Methoden zu Objekten

Manchmal möchte man neue Eigenschaften (oder Methoden) zu einem bestehenden Objekt hinzuzufügen.

Manchmal möchte man neue Eigenschaften (oder Methoden), um alle vorhandenen Objekte eines bestimmten Typs hinzuzufügen.

Manchmal möchte man neue Eigenschaften (oder Methoden) zu einem Objekt Prototyp hinzuzufügen.


Hinzufügen einer Eigenschaft zu einem Objekt

Hinzufügen einer neuen Eigenschaft zu einem bestehenden Objekt ist einfach:

Beispiel

myFather.nationality = "English";
Versuch es selber "

Die Immobilie wird zu hinzugefügt werden myFather . Nicht zu myMother . Nicht an eine andere Person Objekte.


Hinzufügen einer Methode zu einem Objekt

eine neue Methode zu einem bestehenden Objekt Hinzufügen ist auch einfach:

Beispiel

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
Versuch es selber "

Das Verfahren wird hinzugefügt myFather . Nicht zu myMother .


Hinzufügen von Eigenschaften zu einem Prototyp

Sie können nicht eine neue Eigenschaft eines Prototyps auf die gleiche Weise hinzufügen, wie Sie eine neue Eigenschaft zu einem bestehenden Objekt hinzufügen, weil der Prototyp nicht ein vorhandenes Objekt ist.

Beispiel

Person.nationality = "English";
Versuch es selber "

Um eine neue Eigenschaft zu einem Konstruktor hinzufügen, müssen Sie es an den Konstruktor-Funktion hinzu:

Beispiel

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English"
}
Versuch es selber "

Prototype Eigenschaften Prototyp-Werte (Standardwerte) haben.


Hinzufügen von Methoden zu einem Prototyp

Ihre Konstruktor-Funktion kann auch Methoden definieren:

Beispiel

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}
Versuch es selber "

Mit dem prototype der Immobilie

Die JavaScript - prototype - Eigenschaft ermöglicht es Ihnen , neue Eigenschaften zu einem vorhandenen Prototyp hinzuzufügen:

Beispiel

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Versuch es selber "

Die JavaScript-Prototyp-Eigenschaft ermöglicht es Ihnen auch, neue Methoden zu einem existierenden Prototyp hinzuzufügen:

Beispiel

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
    return this.firstName + " " + this.lastName;
};
Versuch es selber "

Nur Ihre eigenen Prototypen ändern. Ändern Sie nie die Prototypen von Standard-JavaScript-Objekte.