Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

__proto__-Eigenschaft (Object) (JavaScript)

Enthält einen Verweis auf den internen Prototyp des angegebenen Objekts.

object.__proto__

object

Erforderlich. Das Objekt, für das der Prototyp festgelegt werden soll.

Mit der __proto__-Eigenschaft kann der Prototyp für ein Objekt festgelegt werden.

Das Objekt oder die Funktion erbt alle Methoden und Eigenschaften des neuen Prototyps und alle Methoden und Eigenschaften in der Prototypenkette neuen des Prototyps. Ein Objekt kann nur einen einzigen Prototypen aufweisen (geerbte Prototypen in der Prototypenkette zählen nicht), wenn Sie daher die __proto__-Eigenschaft aufrufen, ersetzen Sie den vorherigen Prototypen.

Sie können den Prototyp nur für ein erweiterbares Objekt festlegen. Weitere Informationen hierzu finden Sie unter Object.preventExtensions-Funktion (JavaScript).

Hinweis Hinweis

Der __proto__-Eigenschaftenname beginnt und endet mit zwei Unterstrichen.

Das folgende Codebeispiel veranschaulicht, wie der Prototyp für ein Objekt festgelegt wird.

function Rectangle() {
}

var rec = new Rectangle();

if (console && console.log) {
    console.log(rec.__proto__ === Rectangle.prototype);  // Returns true
    rec.__proto__ = Object.prototype;
    console.log(rec.__proto__ === Rectangle.prototype);  // Returns false
}

Im folgenden Codebeispiel wird veranschaulicht, wie Eigenschaften einem Objekt hinzugefügt werden, indem sie dem Prototypen hinzugefügt werden.

var proto = { y: 2 };

var obj = { x: 10 };
obj.__proto__ = proto;

proto.y = 20;
proto.z = 40;

if (console && console.log) {
    console.log(obj.x === 10);  // Returns true
    console.log(obj.y === 20);  // Returns true
    console.log(obj.z === 40);  // Returns true
}

Im folgenden Codebeispiel werden dem String-Objekt Eigenschaften hinzugefügt, indem ein neuer Prototyp dafür festgelegt wird.

var stringProp = { desc: "description" };

String.__proto__ = stringProp;
var s1 = "333";
var s2 = new String("333");

if (console && console.log) {

    console.log(String.desc === "description"); // Returns true
    console.log(s1.desc === "description");     // Returns false
    console.log(s2.desc === "description");     // Returns false

    s1.__proto__ = String;  // Can't be set.
    s2.__proto__ = String;

    console.log(s1.desc === "description"); // Returns false
    console.log(s2.desc === "description"); // Returns true
}

Wird im Internet Explorer 11-Standarddokumentmodus unterstützt. Wird auch unterstützt von Apps aus dem Store (Windows 8,1 und Windows Phone 8.1). Siehe Versionsinformationen.

Wird in den folgenden Dokumentmodi nicht unterstützt: Quirksmodus, Internet Explorer 6-Standardmodus, Internet Explorer 7-Standardmodus, Internet Explorer 8-Standardmodus, Internet Explorer 9-Standardmodus, Internet Explorer 10-Standardmodus. Wird nicht in Windows 8 unterstützt.

Community-Beiträge

Anzeigen:
© 2015 Microsoft