IE8 getPrototypeOf方法

时间:2012-06-06 18:23:34

标签: javascript internet-explorer dojo

非常简单:

我使用Object.getPrototypeOf(...)编写代码来获取Dojo Widget的继承类(只是一个JS对象)。 IE8不支持Object.getPrototypeOf(...)。我需要一个IE工作。有任何想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:11)

Jon Resig的polyfill工作 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;
        };

答案 1 :(得分:2)

答案 2 :(得分:0)

使用Dojo.declared使用超类存储元数据创建的类,因此您不需要使用getPrototypeOf。

我认为你可以用

获得第一个超类
MyClass.prototype.constructor._meta.bases[1]

及其原型

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

(bases [0]似乎是班级本身)


虽然为什么你甚至需要获得原型?很可能你最终会重新实现dojo.declare已经提供的一些功能