JavaScript 함수 바인딩에 대한 자세한 설명_기본지식

WBOY
풀어 주다: 2016-05-16 17:25:04
원래의
1327명이 탐색했습니다.

< 입력 id="btnTest" type="button" value="Button"/>

                                                                        > :)                            document.getElementById('btnTest').onclick=handler.handlerFun ;

                                                                                                                                                           프로그램. 디자인 의도는 다음과 같습니다. 버튼을 클릭하면 이 메서드가 트리거되고 핸들러에서 정의한 메시지를 표시하는 대화 상자가 나타납니다. 그러나 클릭 후에는 대화 상자의 내용이 정의되지 않습니다. 클로저에 익숙한 학생들은 handler.handlerFun() 메소드의 실행 환경이 저장되지 않는다는 것이 문제라는 것을 쉽게 알 수 있습니다. this 객체는 결국 핸들러 대신 DOM 버튼을 가리킵니다. 클로저를 사용하여 이 문제를 해결할 수 있습니다. 함수 바인딩 문을 수정하세요. 코드 복사
코드는 다음과 같습니다.


document.getElementById('btnTest').onclick=function(){
                    handler.handlerFun();                            onclick 프로그램은 클로저를 사용하여 handler.handlerFun() 메소드를 직접 호출합니다. 물론 이는 이 시나리오에 특정한 솔루션입니다. 여러 개의 클로저를 생성하면 코드를 이해하고 디버그하기가 어려워질 수 있습니다.


커스텀 바인드 기능




코드 복사


코드는 다음과 같습니다.


함수 바인드(fn,context){
함수 포인터 형태로 함수가 전달되고 특정 환경에서 함수를 실행해야 하는 경우에는 사용자 정의된 바인딩() 함수를 주로 이벤트 핸들러와 setTimeout 및 setInterval에 사용할 수 있습니다. , 이 바인딩 방법은 일반 함수보다 메모리 오버헤드가 더 많이 필요하므로 꼭 필요한 경우에만 사용하도록 하세요.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!