setTimeout(표현식, 지연 시간)
setTimeout(표현식, 상호 작용 시간)
지연 시간/상호 작용 시간은 밀리초(1000ms=1s) 실행 중 setTimeout이 로드 중입니다. 지정된 시간을 지연한 후 표현식을 한 번만 실행합니다. 한 번
setTimeout 실행 시 로드 이후 지정된 시간마다
1 표현식을 실행합니다. 기본 사용법:
코드 실행:
var i=0
setTimeout("i =1;alert(i)", 1000);
함수 실행:
var i=0;
setTimeout(function(){i =1;alert(i);},1000)
// 위 두 방법의 차이점.
또 다른 실행 함수는 다음과 같습니다.
var i=0;
function test(){
i =1;
alert(i)
}
setTimeout("test()",1000);
도 이와 같을 수 있습니다.
setTimeout( test,1000);
요약:
setTimeout의 프로토타입은 다음과 같습니다.
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage ])
setTimeout 두 가지 형식이 있습니다.
setTimeout(code,interval)
setTimeout(func,interval,args)
code는 문자열입니다
func는 함수입니다.
"함수"의 의미는 명령문이 아니라 표현식입니다.
예를 들어 주기적으로 함수를 실행하려는 경우
function a(){
//...
}
은
setTimeout("a()",1000)
또는
setTimeout(a,1000)
으로 작성할 수 있습니다. 여기서 주의할 점은 두 번째 형식에서는 a, a()로 쓰지 마세요, 기억하세요!!!
확장하려면 여기에 무엇을 쓰든 변수라면 반드시 변수여야 합니다. 특정 함수를 가리키는 경우, 그 반환 값은 다음과 같아야 합니다.
2. setTimeout을 사용하여 setInterval 함수를 구현합니다.
아이디어는 매우 간단합니다. 함수 내에서 계속해서 실행되는 함수, 재귀와 비슷
var i=0;
function xilou(){
i =1
if( i>10){alert(i);return;}
setTimeout("xilou ()",1000);
//이것을 사용할 수도 있습니다
//setTimeout(xilou,1000);
}
3. 클래스에서 setTimeout 사용
드디어 본론에 이르렀습니다. 사실, 수업에서 모두가 직면하는 문제는 이 문제가 해결되는 한, 걱정할 필요가 없습니다.
하하. 분석해 보겠습니다.
function xilou(){
this.name="xilou";
this.sex="남성";
this.num=0
}
xilou.prototype.count=function() {
this.num =1;
alert(this.num);
if(this.num>10){return;}
//아래 4가지 방법을 하나씩 사용하여 테스트합니다. 회전하다 .
setTimeout("this.count()",1000);//A: 다음 x.count()를 호출하면 오류가 발생합니다. 개체가 이 속성 또는 메서드를 지원하지 않습니다.
setTimeout("count()",1000);//B: 오류 표시: 객체 누락
setTimeout(count,1000);//C: 오류 표시: 'count'가 정의되지 않았습니다
/ / 다음은 네 번째 유형
var self=this;
setTimeout(function(){self.count();},1000);//D: Correct
}
var x=new xilou();
x.count()
오류 분석:
A:의 이는 실제로 현재 인스턴스 개체가 아닌 창 개체를 참조합니다.
B: 및 C:의 count() 및 count는 실제로 다음 함수라는 별도의 개체를 참조합니다. count()이지만 window.count()일 수도 있습니다. window.count()는 count()로 생략될 수 있기 때문입니다.
D: js 구문 분석 엔진이 혼란스러워요. 이것은 누구를 가리키는 것입니까?
그런데 setTimeout("this.count()",1000)의 this가 window 개체를 참조한다는 것을 알고 있음에도 불구하고 이것이 왜
window 개체인지 이해하지 못합니다^ _^ (약간 어지러움...)
그러면 이 setTimeout이 어떻게 정의되는지 상상할 수 있습니다.
setTimeout은 window의 메서드이며 전체 이름은 다음과 같습니다. window.setTimeout()
그렇게 해야 합니다.
window.setTimeout =function(vCode, iMilliSeconds [ , sLanguage]){
//....코드
타이머 반환//마커 반환
}
그래서 이것이 전달되면 물론 setTimeout() 시간은 그것이 속한 현재 개체 창을 참조합니다.