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(). ├ä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

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!
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