0

このコードをIE6/7/8と下位互換性を持たせる方法はありますか?

function Foo() {
    ...
}

function Bar() {
    ...
}

Bar.prototype = Object.create(Foo.prototype);

主な問題はObject.createエラーであり、ブラウザがクラッシュします。

Object.createそれで、古いIEの動作をエミュレートするためにドロップできる関数はありますか。または、それを回避するために上記をどのように再コーディングする必要がありますか?

4

1 に答える 1

1

答えとしてのポインティのコメント

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create#Polyfill

if (!Object.create) {
    Object.create = function (o) {
        if (arguments.length > 1) {
            throw new Error('Object.create implementation only accepts the first parameter.');
        }
        function F() {}
        F.prototype = o;
        return new F();
    };
}

このポリフィルは、プロトタイプが選択された新しいオブジェクトを作成するという主なユースケースをカバーしていますが、2番目の引数は考慮されていません。

于 2013-02-13T23:21:24.410 に答える