1

JQueryを使用する場合、toString()関数がオーバーライドされたオブジェクトを拡張すると、Firefoxで「操作はサポートされていません」というエラーが発生します。ただし、Chromeでは正常に動作します。これはJQueryのバグですか、それとも以下のコードスニペットで何か問題がありますか?

    var foo = function () {
        var that = this;

        that.toString = function () { return "foobar" };

        return that;
    }();

    var foo2 = function () {
        var that = this;            

        that = $.extend(true, {}, foo); // copy = options[ name ]; = "Operation is not supported" in Firefox 3.6.8

        return that;
    } ();

    alert(foo.toString()); //"foobar" in Chrome
    alert(foo2.toString()); //"foobar" in Chrome

JQueryバージョン1.4.2

どうもありがとう、

ゴダーズ

4

1 に答える 1

1

匿名関数を呼び出して「foo」の値を取得すると、this変数はウィンドウオブジェクトを参照します。「foo2」を呼び出す無名関数についても同じことが言えます。したがって、ウィンドウオブジェクトを拡張しようとしています。それは本当にあなたがやりたいことですか?

Firefoxがつまずいているように見えるものを編集するのは、の「sessionStorage」属性をコピーしようとする試みですwindow。次の行を追加してみてください:

var test = window['sessionStorage'];

まったく同じエラーが発生します。

于 2010-08-23T12:48:54.567 に答える