JQuery Extend - Firefox不支持操作

时间:2010-08-23 12:10:40

标签: jquery extend

使用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

非常感谢,

Godders

1 个答案:

答案 0 :(得分:1)

当您调用匿名函数获取“foo”的值时,this变量将引用窗口对象。您为“foo2”调用的匿名函数也是如此。因此,您正在尝试扩展窗口对象。这真的是你想要做的吗?

编辑 Firefox似乎正在绊倒的是尝试复制window的“sessionStorage”属性。尝试添加以下行:

var test = window['sessionStorage'];

你会得到完全相同的错误。