2013-12-16 2 views
0

ASP.NET 웹 양식에서 Crystal Reports을 사용하여 일부 보고서 파일을 표시하고 있습니다. 프레임 워크는 UI 로직에 사용되는 자바 스크립트를 생성합니다.Array.prototype을 수정하면 다른 js 라이브러리에서 오류가 발생합니다.

UN-축소 된 버전 (A 아름답게을 사용하여이) : http://pastebin.com/uryjRZF7

날 귀찮게 것은 최대한 빨리 배열 프로토 타입에 어떤 수정을하는 것처럼, 스크립트가 위의 2 개에서 오류가 발생한다는 것입니다. 그것은 (예, 나도 알아,하지만 난이 시점에서 그것 - 유엔 작게를 할 수 없음) 불을 지르고에서 다음과 같습니다

if(!Array.prototype.somethingVeryUnique) { 

    Array.prototype.somethingVeryUnique = function() { 

     return this.length; 
    }; 
} 

:

TypeError: E[D].getHTML is not a function

...conWidget("iconMenu_icon_"+C,B,IconMenuWidget_iconClickCB,K,F,J,G,P,L,A,N,false)...

TypeError: A.layer is null

...conWidget("iconMenu_icon_"+C,B,IconMenuWidget_iconClickCB,K,F,J,G,P,L,A,N,false)...

예를 들어,이 오류가 나타납니다 만들 것 어떻게하면 자동으로 생성 된 파일을 방해 할 수 있습니까?!

업데이트 :

Object.defineProperty(Array.prototype, "somethingUnique", { 
    enumerable: false, 
    writable: true, 
    value: function() { 

    } 
}); 

나는 그것이 아닌 열거 한 경우, 그것을 작동합니다. 그러나 object.defineProperty은 지원해야하는 IE7에서 작동하지 않습니다.

해당 항목이 없으면 열거 할 수없는 속성을 만들 수있는 방법이 있습니까?

+0

@ Qantas94Heavy 필터링되지 않은 것은 무엇을 의미합니까? – Johan

+0

@ HMR의 답변을 참조하십시오, 그것은 내가 의미했던 것입니다. 질문을 변경 한 이래로 이제는 [Object5.PropertyProperty in ES5?] (http://stackoverflow.com/questions/3830800/object-defineproperty-in-es5) :( –

+0

@ Qantas94Heavy 글쎄, 이 부분을 속이라고 부르지는 않을 것입니다. – Johan

답변

1

아마 for(something in array)을 사용하고 있습니다. 확인하지 않으면 프로토 타입 추가 멤버가 표시됩니다. 을 확인하십시오.

+0

네이티브 타입을 확장하는 것은 개인적인 취향에 달려 있습니다 .' Object' * 확장은 나쁘지 만'String','Array' 등은 유용 할 수 있습니다. 하지만 내 생각에 니가 루핑에 맞다고 생각해. 고마워. – Johan

관련 문제