js setTimeout 매개 변수 전달 사용 안내
4115 단어 jssetTimeout매개 변수 전달
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(function(){ searchJDWater(url);},100);
}
이 예 에서 setTimeout 용법,setTimeout(리 셋 함수,시간,매개 변수 1,...,매개 변수 n).또 예 를 들 어 2:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(“searchJDWater(”+url+“)”, 100);
}
이 예 에서 window.setTimeout 을 다시 불 러 오고 apply 로 앞의 function 을 되 돌려 줍 니 다.예 1:
function init(){
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random();
//alert(url);
window.setTimeout(searchJDWater(url), 100);
}
마우스 가 이 단 추 를 눌 렀 을 때 test()를 호출 하여'1'을 전달 합 니 다.화면 에 1000 밀리초(1 초)마다 대화 상 자 를 팝 업 하여 1 을 표시 합 니 다.문제 없습니다.예 2:
<script language="javascript">
var __sto = setTimeout;
window.setTimeout = function(callback,timeout,param)
{
var args = Array.prototype.slice.call(arguments,2);
var _cb = function()
{
callback.apply(null,args);
}
__sto(_cb,timeout);
}
//
function aaaa(a)
{
alert(a);
}
function aaaaa(a,b,c)
{
alert(a + b + c);
}
var a = new Object();
window.setTimeout(aaaa,1000,a);
window.setTimeout(aaaaa,2000,a,6,7);
</script>
이 곳 의 this 는 document.getElement ById("btnTest")로 이해 할 수 있 습 니 다.마우스 가 이 단 추 를 눌 렀 을 때 test 함수 에 전달 하 는 대상 입 니 다.화면 에[object]를 표시 하고 1000 밀리초 후에 두 번 째 를 표시 하지 않 습 니 다.문제 가 발생 했 습 니 다.브 라 우 저 왼쪽 에서 스 크 립 트 오 류 를 보고 합 니 다.자세 한 정보 에는 object 가 정의 되 지 않 았 습 니 다.예 3:
<script type="text/javascript">
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
var f = (function(){ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x){
alert(x);
}
window.setTimeout(test,1000,'fason');
</script>
setTimeout 의 test()는 매개 변 수 를 가지 고 있 지 않 습 니 다.처음으로[object]를 표시 하고 1000 밀리초 후에 undefined 를 표시 합 니 다.변 수 는 할당 되 지 않 았 습 니 다.즉,이 방식 으로 매개 변 수 를 가 진 방법 순환 을 실현 할 수 있 지만 매개 변 수 는 소각 되 었 습 니 다.사실 이것 은 매우 간단 하면 실현 할 수 있 으 니,그렇게 긴 코드 를 써 서 실현 할 필요 가 없다.예 4:
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test("+ obj +")",1000);
}
</script>
<input id="testButton" type="button" onclick="test(1)">
주의 하 세 요.setTimeout 의 test 에 있 는 인자 obj 앞 뒤의 따옴표 가 있 습 니 다.따옴표 안에 작은 따옴표 가 있 습 니 다.이렇게 setTimeout("test(작은 따옴표+obj+작은 따옴표)")이 있 습 니 다.됐 죠?1000 밀리초 간격 으로 화면 에[object]를 표시 하여 대상 을 전달 하 는 데 성공 하 였 습 니 다.――――――――――――――――의 미―제4 조 가 마지막 으로 전해 지 는 것 은'대상'의 문자열 인'object'이지 최초의 대상 객체 가 아니다.그냥 obj 타 입 이 야.전달 대상 의 역할 을 하지 못 했다.코드 테스트 가능:팝 업 대상 id
<script language="javascript">
function test(obj)
{
alert(obj);
setTimeout("test("+ obj +")",1000);
}
</script>
<input id="btnTest" type="button" onclick="test(this)">
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.