2010-08-23 2 views
1

JQuery를 사용할 때 toString() 함수가 재정의 된 객체를 확장하면 Firefox에서 "연산이 지원되지 않음"오류가 발생합니다. 그러나 크롬에서는 잘 작동합니다. 이것은 JQuery의 버그인가요? 아니면 아래의 코드 스 니펫에서 잘못된 것을하고 있습니까?Firefox에서 JQuery Extend 연산이 지원되지 않습니다.

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

많은 감사합니다, 당신은 "foo는"값을 얻기 위해 익명의 함수를 호출 할 때

Godders이

답변

1

this 변수가 될 것입니다 창 개체를 참조합니다. "foo2"라고하는 익명의 함수에 대해서도 동일합니다. 따라서 윈도우 객체를 확장하려고합니다. 그게 정말로 당신이하고 싶은 일입니까?

편집 Firefox가 "sessionStorage"속성을 복사하려는 시도는 window입니다. 이 줄을 추가해보십시오.

var test = window['sessionStorage']; 

정확히 동일한 오류 메시지가 표시됩니다.

+0

답변 해 주셔서 감사합니다. 이로 인해 Crockford의 "Good Parts"서적에서 4 가지 호출 패턴을 다시 읽고 다시 읽도록했습니다. – Godders

+0

좋아, 그래서 내가하고 싶었던 것은 var = {}; foo와 foo2 함수 모두에서. 도와 주셔서 감사합니다. – Godders

+0

여러분을 환영합니다! 행운을 빕니다! – Pointy

관련 문제