Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.
Das Object.prototype
Attribut repräsentiert das Object
Prototyp Objekt.
Property attributes of Object.prototype |
|
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
Beschreibung
Alle Objekte in JavaScript stammen von Object
; alle Objekte erben Methoden und Attribute von Object.prototype
, wobei diese überschrieben werden können (mit Ausnahme von Objekten mit einem null-
Prototyp, sprich Object.create(null)
). Die Prototypen anderer Konstruktoren zum Beispiel, überschreiben das constructor
Attribut und stellen ihre eigenen Methoden zur Verfügung toString()
. Änderungen am Object
prototype Objekt werden an alle Objekte weitergeleitet, solange die betroffenen Attribute und Methoden nicht zuvor in der Kette der Prototypen überschrieben wurden.
Attribute
Object.prototype.constructor
- Die Funktion, die den Prototypen eines Objekts erstellt.
Object.prototype.__proto__
- Zeigt auf das Objekt, das als bei der Initialisierung des Objektes als Prototyp diente.
Object.prototype.__noSuchMethod__
- Erlaubt das Erstellen einer Funktion, die dann ausgeführt wird, wenn ein undefiniertes Objekt als Methode aufgerufen wird.
Object.prototype.__count__
Wurde benutzt um die Anzahl der aufzählbaren Attribute direkt durch das Objekt zurückzugeben; mittlerweile entfernt.Object.prototype.__parent__
Wurde benutzt um auf den Kontext eines Objektes zu verweisen; mittlerweile entfernt.
Methoden
Object.prototype.__defineGetter__()
- Verknüpft eine Funktion mit einem Attribut, das, wenn darauf zugegriffen wird eine Funktion ausführt und deren Rückgabewert zurück gibt.
Object.prototype.__defineSetter__()
- Verknüpft eine Funktion mit einem Attribut, das, wenn dieses gesetzt werden soll, eine Funktion ausführt, die das Attribut modifiziert.
Object.prototype.__lookupGetter__()
- Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode
__defineGetter__()
verknüpft ist. Object.prototype.__lookupSetter__()
- Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode
__defineSetter__()
verknüpft ist. Object.prototype.hasOwnProperty()
- Gibt einen Boolean Wert zurück, der anzeigt, ob ein Attribut ein direktes Attribut dieses Objekts ist, oder über Vererbung durch einen Prototypen hinzugefügt wurde.
Object.prototype.isPrototypeOf()
- Gibt einen Boolean Wert zurück, der anzeigt, ob das spezifizierte Objekt in der Prototyp-Kette des Objekts, das diese Funktion aufruft, enthalten ist.
Object.prototype.propertyIsEnumerable()
- Gibt einen Boolean Wert zurück, der anzeigt, ob das interne ECMAScript [[Enumerable]] attribute gesetzt ist.
Object.prototype.toSource()
- Liefert einen String zurück, der die Quelle eines Objekt-Literals enthält, und das Objekt darstellt, das diese Funktion aufruft; man kann diesen Wert benutzen, um ein neues Objekt zu erstellen.
Object.prototype.toLocaleString()
- Ruft
toString()
auf. Object.prototype.toString()
- Gibt eine String-Darstellung des Objekts zurück.
Object.prototype.unwatch()
- Entfernt einen Kontrollpunkt von einem Attribut des Objekts.
Object.prototype.valueOf()
- Gibt den primitiven Wert des spezifizierten Objekts zurück.
Object.prototype.watch()
- Fügt einem Attribut des Objekts einen Kontrollpunkt hinzu.
Object.prototype.eval()
- Wurde genutzt, um einen String bestehend aus JavaScript Code, im Kontext des aktuellen Objekts auszuwerten; wurde entfernt;
Beispiele
Weil JavaScript keine klassischen Sub-Klassen-Funktionalität hat, sind Prototypen ein guter Weg, um "Base Class" Objekte mit bestimmten Funktionen zu erstellen, die als Objekte fungieren. Zum Beispiel:
var Person = function() { this.canTalk = true; }; Person.prototype.greet = function() { if (this.canTalk) { console.log('Hi, I am ' + this.name); } }; var Employee = function(name, title) { Person.call(this); this.name = name; this.title = title; }; Employee.prototype = Object.create(Person.prototype); Employee.prototype.constructor = Employee; Employee.prototype.greet = function() { if (this.canTalk) { console.log('Hi, I am ' + this.name + ', the ' + this.title); } }; var Customer = function(name) { Person.call(this); this.name = name; }; Customer.prototype = Object.create(Person.prototype); Customer.prototype.constructor = Customer; var Mime = function(name) { Person.call(this); this.name = name; this.canTalk = false; }; Mime.prototype = Object.create(Person.prototype); Mime.prototype.constructor = Mime; var bob = new Employee('Bob', 'Builder'); var joe = new Customer('Joe'); var rg = new Employee('Red Green', 'Handyman'); var mike = new Customer('Mike'); var mime = new Mime('Mime'); bob.greet(); // Hi, I am Bob, the Builder joe.greet(); // Hi, I am Joe rg.greet(); // Hi, I am Red Green, the Handyman mike.greet(); // Hi, I am Mike mime.greet();
Spezifikationen
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Object.prototype' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Object.prototype' in dieser Spezifikation. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Object.prototype' in dieser Spezifikation. |
Entwurf |
Browser Kompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |