JavaScript 함수 앨리어싱 수수께끼
JavaScript 함수 앨리어싱을 위해 별칭 방법을 사용하려고 시도하는 동안 일부 사용자는 Firefox, Chrome, 심지어 Google Chrome의 디버그 창까지.
원인
분석 결과 JavaScript 함수가 호스트 개체에 느슨하게 연결되어 있는 것으로 나타났습니다. 함수를 호출할 때 JavaScript는 범위를 결정하고 이를 함수에 전달합니다. 앨리어싱의 경우 범위가 명시적으로 지정되지 않으므로 전역 Window 개체가 범위로 전달됩니다.
Document.getElementById 앨리어싱에 미치는 영향
문서 포함 .getElementById 특히, getElementById에서는 이 개체가 문서 개체일 것으로 예상하므로 이러한 정렬 오류가 문제가 됩니다. 올바른 범위(예: 문서)를 지정하지 않고 별칭이 지정된 함수를 호출하면 함수 호출이 실패하고 "WrappedNative 프로토타입 개체에 대한 잘못된 작업" 오류가 발생합니다.
작업 솔루션
이 문제를 해결하려면 Apply 메서드를 사용하여 함수 호출 시 범위를 수동으로 지정할 수 있습니다. 예를 들어 myAlias를 직접 호출하는 대신 다음 구문을 사용할 수 있습니다.
myAlias.apply(document, ['someElement']);
예외: Internet Explorer
특히 함수 별칭 지정은 다음에서 예상대로 작동합니다. 인터넷 익스플로러. 이는 창 개체를 문서 개체와 동일시할 수 있는 Internet Explorer의 getElementById 구현 때문일 수 있습니다.
위 내용은 Firefox, Chrome 및 디버그 Windows에서 `document.getElementById`와 함께 JavaScript 함수 별칭 지정이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!