2012-06-06 1 views
5

Довольно просто:IE8 getPrototypeOf метод

У меня есть код, используя Object.getPrototypeOf(...), чтобы получить унаследованные классы Dojo Widget (только объект JS). Object.getPrototypeOf(...) не поддерживается в IE8. Мне нужна работа IE. Есть идеи? Заранее спасибо.

+4

блог Резиг должен помочь: http://ejohn.org/blog/objectgetprototypeof/ –

+0

Это сделал. Брось этого плохого мальчика в ответ, и я соглашусь. Спасибо. –

ответ

0

Классы, созданные с помощью Dojo.declared, хранят метаданные со своими суперклассами, поэтому вам не нужно использовать getPrototypeOf.

Я думаю, что вы можете получить первый суперкласса с

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

и его прототип с

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

(основы [0], кажется, сам класс)


Хотя зачем вам нужен прототип? Его очень вероятно, что вы будете в конечном итоге реализовав некоторые функции, уже предоставленной dojo.declare

10

polyfill Джон Resig работает http://ejohn.org/blog/objectgetprototypeof/

Я сделал это даже меньше

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, это достаточно хорошо для вас, чтобы принять его? – Adaptabi

Смежные вопросы