Objecto.isPrototypeof()
EL métoto isPrototypeOf(object_proto) permite comprobar si este objeto es prototipo del que se le pasa como argumento. Es decir si las propiedades y métodos de ese objeto son utilizables por el objeto del argumento.
Un ejemplo de uso sería comprobar si un determiando objeto es capaz de ejecutar un método de otro objeto.
var Fruta = { nombre: '', epoca:'', cuando: function(){return this.epoca}};
var manzana = Object.create(Fruta);
Fruta.isPrototypeOf(manzana); //true, manaza se crea con fruta como prototipo
var Forma = function(x,y){
this.alto = x;
this.ancho= y;
this.area = function(){return this.ancho*this.alto}
};
var cuadro = new Forma(4,5);
var campo = Object.create(Forma.prototype)
console.log( Forma.prototype.isPrototypeOf(cuadro) ); //true
console.log( Forma.prototype.isPrototypeOf(campo) ); //true
En el primer ejemplo manzana se crea mediante Object.create usando fruta como prototipo.
En el segundo ejemplo cuadro es instanciado desde forma, por tanto hereda sus propiedades y atributos a través de prototype. Mientras que campo es creado también con forma.prototype como prototipo.
Como vemos en la práctica este método nos permite saber si un objeto es descendiente de otro y por tnato pueden acceder a sus propiedades heredables