2012-06-06 5 views
5

Abbastanza semplice:metodo IE8 getPrototypeOf

Ho codice utilizzando Object.getPrototypeOf(...) per ottenere le classi ereditate di un Dojo Widget (solo un oggetto JS). Object.getPrototypeOf(...) non è supportato in IE8. Mi serve un IE per aggirare. Qualche idea? Grazie in anticipo.

+4

post sul blog di John Resig dovrebbe aiutare: http://ejohn.org/blog/objectgetprototypeof/ –

+0

Che lo ha fatto. Getta questo cattivo ragazzo in una risposta e accetterò. Grazie. –

risposta

0

Classi create con i metadati del negozio Dojo.declared con le loro superclassi, quindi non è necessario utilizzare getPrototypeOf.

penso che si può ottenere la prima superclasse con

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

e il suo prototipo con

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

(basi [0] sembra essere la classe stessa)


Anche perché hai bisogno di ottenere il prototipo? E 'molto probabile che si finirà per reimplementare qualche caratteristica che è già fornita da dojo.declare

10

polyfill di Jon Resig funziona http://ejohn.org/blog/objectgetprototypeof/

ho reso ancora più piccolo

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, è sufficiente per accettarlo? – Adaptabi