En JavaScript, si tenemos un objeto pero no sabemos su constructor, ¿cómo obtenemos su objeto prototipo?
En el navegador Chrome o Firefox, podemos usar directamente el atributo __proto__ del objeto para obtener su objeto prototipo.
La copia del código es la siguiente:
<!-lang: js->
función f () {};
var foo = new f ();
alerta (foo .__ proto__ == F.Prototype);
Sin embargo, el atributo __proto__ no es compatible con el navegador IE hasta IE11.
Entonces, en los navegadores que no admiten el atributo __proto__, ¿cómo obtenemos el objeto prototipo del objeto? Se puede obtener indirectamente a través del constructor.
La copia del código es la siguiente:
<!-lang: js->
función f () {};
var foo = new f ();
alerta (foo.constructor.prototype == f.prototype);
El atributo del constructor no es el atributo propio del objeto, pero se obtiene del objeto prototipo hacia arriba a lo largo de la cadena prototipo. Esta propiedad apunta al constructor correspondiente a este objeto prototipo. La propiedad prototipo del constructor apunta al objeto prototipo, por lo que podemos obtenerla indirectamente.
Lo anterior se trata de obtener objetos prototipo en JavaScript. Espero que te guste.