IE8 getPrototypeOf方法

7 javascript dojo internet-explorer

很简单:

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

Ada*_*abi 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;
        };
Run Code Online (Sandbox Code Playgroud)


hug*_*omg 0

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

我认为你可以得到第一个超类

MyClass.prototype.constructor._meta.bases[1]
Run Code Online (Sandbox Code Playgroud)

及其原型

MyClass.prototype.constructor._meta.bases[1].prototype
Run Code Online (Sandbox Code Playgroud)

(bases[0] 似乎是类本身)


但为什么你需要获得原型呢?您很可能最终会重新实现 dojo.declare 已经提供的某些功能