Object.prototype

Das Object.prototype Attribut repräsentiert das Prototype Objekt von Object.

Eigenschaftsattribute von Object.prototype
Schreibbar nein
Aufzählbar nein
Konfigurierbar nein

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() (en-US). Ä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__ (en-US) This API has not been standardized.
Zeigt auf das Objekt, das als bei der Initialisierung des Objektes als Prototyp diente.
Object.prototype.__noSuchMethod__ This API has not been standardized.
Erlaubt das Erstellen einer Funktion, die dann ausgeführt wird, wenn ein undefiniertes Objekt als Methode aufgerufen wird.
Object.prototype.__count__ Dies ist eine veraltete API und es wird nicht mehr garantiert, dass sie funktioniert.
Wurde benutzt um die Anzahl der aufzählbaren Attribute direkt durch das Objekt zurückzugeben; mittlerweile entfernt.
Object.prototype.__parent__ Dies ist eine veraltete API und es wird nicht mehr garantiert, dass sie funktioniert.
Wurde benutzt um auf den Kontext eines Objektes zu verweisen; mittlerweile entfernt.

Methoden

Object.prototype.__defineGetter__() This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
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__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Verknüpft eine Funktion mit einem Attribut, das, wenn dieses gesetzt werden soll, eine Funktion ausführt, die das Attribut modifiziert.
Object.prototype.__lookupGetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode __defineGetter__() verknüpft ist.
Object.prototype.__lookupSetter__() (en-US) This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode __defineSetter__() (en-US) 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() (en-US)
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() (en-US)
Gibt einen Boolean Wert zurück, der anzeigt, ob das interne ECMAScript [[Enumerable]] attribute gesetzt ist.
Object.prototype.toSource() This API has not been standardized.
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() (en-US)
Ruft toString() (en-US) auf.
Object.prototype.toString() (en-US)
Gibt eine String-Darstellung des Objekts zurück.
Object.prototype.unwatch() This API has not been standardized.
Entfernt einen Kontrollpunkt von einem Attribut des Objekts.
Object.prototype.valueOf()
Gibt den primitiven Wert des spezifizierten Objekts zurück.
Object.prototype.watch() This API has not been standardized.
Fügt einem Attribut des Objekts einen Kontrollpunkt hinzu.
Object.prototype.eval() Dies ist eine veraltete API und es wird nicht mehr garantiert, dass sie funktioniert.
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 (ECMA-262)
Die Definition von 'Object.prototype' in dieser Spezifikation.
Lebender Standard  

Browser Kompatibilität

Wir konvertieren die Kompatibilitätsdaten in ein maschinenlesbares JSON Format. Diese Kompatibilitätstabelle liegt noch im alten Format vor, denn die darin enthaltenen Daten wurden noch nicht konvertiert. Finde heraus wie du helfen kannst! (en-US)
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)

See also