---
title: Object.prototype
slug: conflicting/Web/JavaScript/Reference/Global_Objects/Object
translation_of: Web/JavaScript/Reference/Global_Objects/Object
translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype
original_slug: Web/JavaScript/Reference/Global_Objects/Object/prototype
---
{{JSRef}}
Das Object.prototype
Attribut repräsentiert das Prototype Objekt von {{jsxref("Object")}}.
{{js_property_attributes(0, 0, 0)}}
Beschreibung
Alle Objekte in JavaScript stammen von {{jsxref("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 {{jsxref("Object.prototype.toString()", "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
- {{jsxref("Object.prototype.constructor")}}
- Die Funktion, die den Prototypen eines Objekts erstellt.
- {{jsxref("Object.prototype.__proto__")}} {{non-standard_inline}}
- Zeigt auf das Objekt, das als bei der Initialisierung des Objektes als Prototyp diente.
- {{jsxref("Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}
- Erlaubt das Erstellen einer Funktion, die dann ausgeführt wird, wenn ein undefiniertes Objekt als Methode aufgerufen wird.
{{jsxref("Object.prototype.count","Object.prototype.__count__")}} {{obsolete_inline}}
Wurde benutzt um die Anzahl der aufzählbaren Attribute direkt durch das Objekt zurückzugeben; mittlerweile entfernt.
{{jsxref("Object.prototype.parent","Object.prototype.__parent__")}} {{obsolete_inline}}
Wurde benutzt um auf den Kontext eines Objektes zu verweisen; mittlerweile entfernt.
Methoden
- {{jsxref("Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
- Verknüpft eine Funktion mit einem Attribut, das, wenn darauf zugegriffen wird eine Funktion ausführt und deren Rückgabewert zurück gibt.
- {{jsxref("Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
- Verknüpft eine Funktion mit einem Attribut, das, wenn dieses gesetzt werden soll, eine Funktion ausführt, die das Attribut modifiziert.
- {{jsxref("Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
- Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode {{jsxref("Object.prototype.__defineGetter__()", "__defineGetter__()")}} verknüpft ist.
- {{jsxref("Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}
- Gibt die Funktion zurück, die mit dem spezifizierten Attribut über die Methode {{jsxref("Object.prototype.__defineSetter__()", "__defineSetter__()")}} verknüpft ist.
- {{jsxref("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.
- {{jsxref("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.
- {{jsxref("Object.prototype.propertyIsEnumerable()")}}
- Gibt einen Boolean Wert zurück, der anzeigt, ob das interne ECMAScript [[Enumerable]] attribute gesetzt ist.
- {{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}
- 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.
- {{jsxref("Object.prototype.toLocaleString()")}}
- Ruft {{jsxref("Object.toString", "toString()")}} auf.
- {{jsxref("Object.prototype.toString()")}}
- Gibt eine String-Darstellung des Objekts zurück.
- {{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}
- Entfernt einen Kontrollpunkt von einem Attribut des Objekts.
- {{jsxref("Object.prototype.valueOf()")}}
- Gibt den primitiven Wert des spezifizierten Objekts zurück.
- {{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}
- Fügt einem Attribut des Objekts einen Kontrollpunkt hinzu.
{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}
- 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 |
{{SpecName('ES1')}} |
{{Spec2('ES1')}} |
Initial definition. Implemented in JavaScript 1.0. |
{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}} |
{{Spec2('ES5.1')}} |
|
{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}} |
{{Spec2('ES6')}} |
|
{{SpecName('ESDraft', '#sec-object.prototype', 'Object.prototype')}} |
{{Spec2('ESDraft')}} |
|
Browser Kompatibilität
{{CompatibilityTable}}
Feature |
Chrome |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari |
Basic support |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
Feature |
Android |
Chrome for Android |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
Basic support |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
{{CompatVersionUnknown}} |
See also