7

ものすごく単純:

Object.getPrototypeOf(...)Dojoウィジェット(JSオブジェクトのみ)の継承されたクラスを取得するために使用するコードがあります。Object.getPrototypeOf(...)IE8ではサポートされていません。IEの回避策が必要です。何か案は?前もって感謝します。

4

3 に答える 3

11

Jon 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;
        };
于 2013-04-06T13:27:38.447 に答える
0

Dojo.declared で作成されたクラスはメタデータをそのスーパークラスとともに保存するため、getPrototypeOf を使用する必要はありません。

最初のスーパークラスを取得できると思います

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

とそのプロトタイプ

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

(bases[0]はクラスそのもののようです)


なぜプロトタイプを入手する必要があるのですか?dojo.declare によってすでに提供されているいくつかの機能を再実装することになる可能性が非常に高いです。

于 2012-06-06T19:31:11.260 に答える