Wie erhalten wir in JavaScript, wenn wir ein Objekt haben, aber seinen Konstruktor nicht kennen, sein Prototypobjekt?
Im Chrome- oder Firefox -Browser können wir das __Proto__ -Attribut des Objekts direkt verwenden, um sein Prototypobjekt zu erhalten.
Die Codekopie lautet wie folgt:
<!-Lang: JS->
Funktion f () {};
var foo = new f ();
alert (foo .__ proto__ == f.prototype);
Das __Proto__ -Attribut wird jedoch im IE -Browser erst IE11 unterstützt.
Wie erhalten wir in Browsern, die das __Proto__ -Attribut nicht unterstützen, das Prototypobjekt des Objekts? Es kann indirekt durch Konstruktor erhalten werden.
Die Codekopie lautet wie folgt:
<!-Lang: JS->
Funktion f () {};
var foo = new f ();
alert (foo.constructor.prototype == f.Prototype);
Das Konstruktorattribut ist nicht das eigene Attribut des Objekts, sondern wird aus dem Prototypobjekt nach oben entlang der Prototypkette erhalten. Diese Eigenschaft zeigt auf den Konstruktor, der diesem Prototypobjekt entspricht. Die Prototyp -Eigenschaft des Konstruktors verweist auf das Prototypobjekt, sodass wir es indirekt erhalten können.
Bei dem obigen geht es darum, Prototypobjekte in JavaScript zu erhalten. Ich hoffe es gefällt euch.