property objeto new from ejemplos data create crear javascript instanceof object-create

javascript - objeto - Instancia de equivalente para las cadenas Object.create y prototype.



object.create javascript (2)

Mi respuesta será corta ...

Podría usar el método isPrototypeOf , que estará presente en caso de que su objeto herede del prototipo de Objeto, como su ejemplo.

ejemplo:

A.isPrototypeOf(C) // true B.isPrototypeOf(C) // true Array.prototype.isPrototypeOf(C) // false

Más información se puede leer aquí: Mozilla Developer Network: isPrototypeOf

Considere un objeto de este tipo con una cadena de prototipo:

var A = {}; var B = Object.create(A); var C = Object.create(B);

¿Cómo verificar en tiempo de ejecución si C tiene A en su cadena de prototipos?

instanceof no encaja, ya que está diseñado para funcionar con funciones de constructor, que no estoy usando aquí.


Puede Object.getPrototypeOf cadena de prototipos llamando a Object.getPrototypeOf recursivamente: http://jsfiddle.net/Xdze8/ .

function isInPrototypeChain(topMost, itemToSearchFor) { var p = topMost; do { if(p === itemToSearchFor) { return true; } p = Object.getPrototypeOf(p); // prototype of current } while(p); // while not null (after last chain) return false; // only get here if the `if` clause was never passed, so not found in chain }