2012-06-06 8 views
5

Muy simple:método IE8 getPrototypeOf

tengo código usando Object.getPrototypeOf(...) para obtener las clases heredadas de un widget Dojo (sólo un objeto JS). Object.getPrototypeOf(...) no es compatible con IE8. Necesito un IE que funcione. ¿Algunas ideas? Gracias por adelantado.

+4

el blog de John Resig debería ayudar: http://ejohn.org/blog/objectgetprototypeof/ –

+0

que lo hizo. Lanza a este chico malo en una respuesta y yo aceptaré. Gracias. –

Respuesta

0

Clases creadas con Dojo.de metadatos de la tienda declarada con sus superclases, por lo que no es necesario utilizar getPrototypeOf.

creo que se puede conseguir la primera superclase con

MyClass.prototype.constructor._meta.bases[1] 

y su prototipo con

MyClass.prototype.constructor._meta.bases[1].prototype 

(bases [0] parece ser la propia clase)


Aunque, ¿por qué necesitas siquiera obtener el prototipo? Es muy probable que el resultado final será reimplementar alguna característica que ya está proporcionada por dojo.declare

10

polyfill de Jon Resig funciona http://ejohn.org/blog/objectgetprototypeof/

he hecho aún más pequeño

if (typeof Object.getPrototypeOf !== "function") 
    Object.getPrototypeOf = "".__proto__ === String.prototype 
     ? function (object) { 
      return object.__proto__; 
     } 
     : function (object) { 
      // May break if the constructor has been tampered with 
      return object.constructor.prototype; 
     }; 
+0

@ gonzoc0ding, ¿es esto lo suficientemente bueno para que lo aceptes? – Adaptabi