> 웹 프론트엔드 > JS 튜토리얼 > 수업에서 setTimeout을 사용하는 데 문제가 있습니다! _자바스크립트 기술

수업에서 setTimeout을 사용하는 데 문제가 있습니다! _자바스크립트 기술

WBOY
풀어 주다: 2016-05-16 19:15:28
원래의
961명이 탐색했습니다.

지금 하는 일을 이렇게 쓰고 싶지는 않습니다.


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
Calendar1을 전달할 필요가 없습니다. setTimeout 매개변수에서 this.thread_result()
를 통해 직접 실행할 수 있습니다.
[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
환우 선배님은 안 계세요. 먼저 가서 서투른 모습 보여주세요 :)
[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
이 문제의 어려움은 함수의 this가 올바른 지점을 가리키도록 하는 것입니다.

[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
f3 제거


[Ctrl A 모두 선택 참고: <script> function calendar(name){ this._name = name; } calendar.prototype.thread=function(){ this._timeout = setTimeout(this._name + ".thread_result()", 200); } calendar.prototype.thread_result=function(){ alert("执行成功!"); } var calendar1; onload=function(){ calendar1 = new calendar("calendar1"); calendar1.thread(); } </script>외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다. <script> function calendar(){ } calendar.prototype.thread=function(){ this._timeout = setTimeout("this.thread_result()", 200); } calendar.prototype.thread_result=function(){ alert("执行成功!"); } onload=function(){ var calendar1 = new calendar(); calendar1.thread(); } </script>]<script> function calendar(){ this.str="执行成功"; } calendar.prototype.thread=function(){ var temp=this; this._timeout = setTimeout(function(){temp.thread_result()}, 200); } calendar.prototype.thread_result=function(){ alert(this.str); } onload=function(){ var calendar1 = new calendar(); calendar1.thread(); } </script><script> Function.prototype.bindNode=function(oNode){ var foo=this,iNodeItem if(window.__bindNodes==null) __bindNodes=[] __bindNodes.push(oNode) iNodeItem=__bindNodes.length-1 oNode=null return function(e){ foo.call(__bindNodes[iNodeItem],e||event) } } btTest.onclick=function(){ alert(this.tagName==null?"tagName="+this.tagName+"(普通情况下,this指向当前函数)":"tagName="+this.tagName+"(经过bindNode处理后,this可以指向任意传过来的对象)") } window.setTimeout(btTest.onclick,100) window.setTimeout(btTest.onclick.bindNode(btTest),200) </script>질문 이벤트 바인딩에 대해 내 접근 방식은 함수 배열을 직접 작성하는 것입니다. 이것이 더 독창적인 것 같습니다. 조언 좀 부탁드립니다.
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿