2013-10-25 6 views
0

나는 자바 스크립트 프로그래밍에 익숙하지 않으므로 기본적인 질문을 위해 나와 함께하시기 바랍니다 :) 실수로 오픈 소스 자바 스크립트 코드 중 하나가 기본 window.scrollTo() 메서드를 수정하면 어떻게하면 scrollTo를 호출 할 때 HTML 요소, 항상 작동하며 대신 JS 오류를 발생시키지 않습니까?window.scrollTo 메서드를 재정의하면 어떻게됩니까?

+2

먼저 시도해야한다고 생각합니다. –

+0

예, 시도했는데 JS 오류가 발생했습니다. 그래서 어떻게하면 항상 기본 윈도우의 메소드가 항상 호출되어야하는지 알 수 없습니다. – rishabh

답변

1

scrollTo의 기본 버전은 단순히 수정 사항을 삭제하면 복원 할 수 있습니다.

delete window.scrollTo; 

이 수정 된 window.scrollTo를 제거하고 창 객체 프로토 타입에서 함수의 기본 버전으로 교체합니다.

그러나 수정 된 버전 window.scrollTo이 필요하면 사본을 만들어 사본을 사용할 수 있습니다. 그때부터

window.scrollToProper = window.scrollTo; 

기본 기능을 사용 scrollToProper()를 호출 할 수 있습니다에 window.scrollTo이 수정됩니다하더라도 : 당신이 라이브러리를로드하기 전에

다음 코드를 실행합니다.

또는 scrollTo 기본 함수를 Window 프로토 타입에서 직접 호출 할 수 있습니다. 다음과 같이 (. 감사 RISHABH)의 구문은 다음과 같습니다

Window.prototype.scrollTo.call(window, x, y); 

주 윈도우의 총액은, 당신은 윈도우 객체가 아닌 현재 인스턴스를 참조 때문이다.

+0

의미가 있습니다. 비록 이것이 올바른지 확실하지 않은 한 가지 더 많은 해결책이 있지만, 같은 것을 부르는 잠재적 인 위험 요소가 무엇인지 알려주시기 바랍니다 :'''Window.prototype.scrollTo.call (window, someParam);''' – rishabh

+0

고마워, @rishabh, 잘 작동합니다. 그러나 나는 더 간단한 해결책으로 나의 대답을 업데이트했다. – nullability