Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.
Zusammenfassung
Gibt eine Referenz zur Object
-Funktion, welche die Instanz vom Prototyp herstellt. Merke: Der Wert dieser Eigenschaft ist eine Referenz auf die Funktion selbst und kein String mit dem Funktionsnamen als Inhalt. Der Wert ist nur lesbar für primitive Werte, wie 1
, true
und "test"
.
Beschreibung
Alle Objekte erben eine constructor- Eigenschaft von ihrem prototype
:
var o = {}; o.constructor === Object; // true var a = []; a.constructor === Array; // true var n = new Number(3); n.constructor === Number; // true
Beispiele
Beispiel: zeigen den Konstruktor von einem Objekt an
Das folgende Beispiel erzeugt einen Prototyp: Tree
, und ein Objekt von jenem Typ: theTree
. Das Beispiel zeigt danach die Konstruktor-Eigenschaft vom Objekt:theTree
an.
function Tree(name) { this.name = name; } var theTree = new Tree('Redwood'); console.log('theTree.constructor is ' + theTree.constructor);
Das Beispiel erzeugt folgende Ausgabe:
theTree.constructor is function Tree(name) { this.name = name; }
Beispiel: Veränderung des Konstruktors eines Objekts
Das folgende Beispiel zeigt, wie man den Konstruktorwert eines generischen Objekts verändert. Nur true
, 1
und "test"
werden nicht von der Veränderung betroffen, da sie nur lesbare (read-only) native Konstruktoren haben. Dieses Beispiel zeigt, dass es nicht immer sicher ist, sich auf die Konstruktor-Eigenschaft eines Objekts zu verlassen.
function Type () {} var types = [ new Array(), [], new Boolean(), true, // bleibt unverändert new Date(), new Error(), new Function(), function () {}, Math, new Number(), 1, // bleibt unverändert new Object(), {}, new RegExp(), /(?:)/, new String(), 'test' // bleibt unverändert ]; for (var i = 0; i < types.length; i++) { types[i].constructor = Type; types[i] = [types[i].constructor, types[i] instanceof Type, types[i].toString()]; } console.log(types.join('\n'));
Das Beispiel zeigt folgende Ausgabe:
function Type() {},false, function Type() {},false, function Type() {},false,false function Boolean() { [native code] },false,true function Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600 function Type() {},false,Error function Type() {},false,function anonymous() { } function Type() {},false,function () {} function Type() {},false,[object Math] function Type() {},false,0 function Number() { [native code] },false,1 function Type() {},false,[object Object] function Type() {},false,[object Object] function Type() {},false,/(?:)/ function Type() {},false,/(?:)/ function Type() {},false, function String() { [native code] },false,тест
Spezifikation
Spezifikation | Status | Komentar |
---|---|---|
ECMAScript 1 te Edition. | Standard | Ausgangsdefinition: Implementiert in JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Object.prototype.constructor' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Object.prototype.constructor' in dieser Spezifikation. |
Standard |
Browserunterstützung
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basis- unterstützung | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basis- unterstützungt | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |