JavaScript 학습 노트 Black.Capfeine 09.11.28
3342 단어 JavaScript학습 노트
function addEventHandler(oTarget, sEventType, fnHandler)
{
if(oTarget.addEventListener)
{oTarget.addEventListener(sEventType, fnHandler, false);}
else if(oTarget.attachEvent)
{oTarget.attachEvent('on' + sEventType, fnHandler);}
else{oTarget['on' + sEventType] = fnHandler;}
}
2)this 매개 변 수 를 전달 하 는 문제 입 니 다.제 가 함수 와 속성 을 모두 한 종류 에 포 장 했 기 때문에 onclick 과 같은 사건 은 하나의 문제 가 발생 할 수 있 습 니 다.예 를 들 어 addEventHandler(this.elems[i],"click",this.Move).이렇게 하면 오류 가 발생 합 니 다.onclick 사건 이 발생 했 을 때 호출 된 this 는 이 패 키 징 을 가리 키 는 클래스 가 아니 기 때문에 apply()를 사용 해 야 합 니 다~-특정한 대상 의 방법 을 응용 하여 다른 대상 으로 현재 대상 을 교체 해 야 합 니 다.구체 적 인 형식 은 말 할 필요 도 없습니다.인터넷 에 많은~함수:
var Bind = function(object,func){
var args = Array.prototype.slice.call(arguments).slice(2);
return function(){
return func.apply(object,args);
}
}
호출:this.fnMove=Bind(this,this.move,i);//this.move 는 내 가 정의 한 구성원 함수 로 클래스 에 봉 인 됩 니 다//this.elems[i].onclick=this.fnMove;//위 에 있 는 그 말 을 이 말로 바 꿔 도 됩 니 다.다만,onclick 사건 은 this 로 바 뀌 었 습 니 다.fnMove,this 를 추가 하 는 것 이 아 닙 니 다.fnMove 들 어가 addEventHandler(this.elems[i],"click",this.fnMove); 이렇게 하면 OK~PS.call()도 기본적으로 같은 기능 이지 만 구체 적 인 매개 변 수 는 다 릅 니 다.2.setInterval 문제 1)와 setTimeout 의 차 이 는 일반적인 상황 에서 setTimeout 은 한 번 만 실 행 됩 니 다.(물론 한 함수 에서 setTimeout 을 반복 적 으로 호출 하면 중복 실 행 됩 니 다)그리고 setInterval 은 중복 실 행 될 수 있 습 니 다.clearIntercal()2)IE 에서 호 환 되 지 않 는 문제 라 는 문제 가 저 를 50%괴 롭 혔 습 니 다.원래 chrome,ff,safari 에서 잘 작 동 되 었 는데 저 는 상당히 흥분 하여 IE 를 잊 었 습 니 다.나중에 IE 에서 시험 해 봤 더 니 끝 났 습 니 다.수정,구 글(여 기 는 동사,헤헤),거의 반나절 이 걸 렸 죠?드디어 끝 났 습 니 다.이전에 문 구 는 다음 과 같 았 다.this.timer=setInterval(this.unfold,5,this.divs[index],this);결 과 는 IE 하에 서 전혀 사용 되 지 않 았 다.마지막 으로 한 협객 의 글 에서 다음 과 같은 설명 을 보 았 다.IE 에서 setTimeout 과 setInterval 은 매개 변수 전달 을 지원 하지 않 는 다.문 제 는 곧 해결 되 었 다.역시 내 가 너무 못 했 어~문 제 를 해결 하 는 함 수 는 다음 과 같 아.
var mySetInterval = setInterval;
window.setInterval = function(callback, interval)
{
var args = Array.prototype.slice.call(arguments, 2);
function callFn(){callback.apply(null, args);}
return mySetInterval(callFn, interval);
}
var mySetTimeOut = setTimeout; // setInterval
window.setTimeout = function(callback, timeout)
{
var args = Array.prototype.slice.call(arguments, 2);
function callFn(){callback.apply(null, args);}
그리고 window.setTimeout 이나 window.setInterval 로 호출 하면 돼~내 문 구 는 다음 과 같 아.this.timer=window.setInterval(this.unfold,5,this.divs[index],this);/그 중에서 this.divs[index],this 는 전달 하 는 두 가지 매개 변수 입 니 다.그 협객 에 게 다시 한 번 감 사 드 립 니 다.비록 그 는 저 를 모 르 지만~현재 IE 에서 조판 의 작은 문제 가 있 습 니 다.계속 공부 하 세 요~전력 토끼!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.