>웹 프론트엔드 >JS 튜토리얼 >JQuery_jquery에서 SetTimeOut의 매개변수 전달 문제에 대한 토론

JQuery_jquery에서 SetTimeOut의 매개변수 전달 문제에 대한 토론

WBOY
WBOY원래의
2016-05-16 17:34:071268검색

window.setTimeout이든 window.setInterval이든 함수 이름을 호출 핸들로 사용하는 경우 매개변수를 사용할 수 없습니다. 맞춤 매개변수든 이벤트 매개변수든 매개변수를 전달하려는 경우 해결책은 이 함수를 기반으로 캡슐화 계층을 만드는 것입니다. 아직 구체적인 원리는 명확하지 않지만, 아래의 방법으로 이 문제를 해결할 수 있습니다.
간단한 코드를 먼저 보세요:

코드를 복사하세요 코드는 다음과 같습니다.

function show(){
alert("Hello World");
}
setTimeout(show,1000);

효과 이 코드는 Hello world가 1초 후에 표시되지만,
setTimeOut(show(),1000)
으로 변경하면 즉시 표시되며 지연 효과가 나타나지 않습니다. 하지만 따옴표를 추가하면 괜찮습니다. 예:
setTimeOut("show()",1000)
은 괜찮습니다. 하지만 매개변수를 가져오면 여전히 작동하지 않습니다. 예:
setTimeOut("show(name)",1000)
이때 다른 함수를 작성하는 비교 방법이 있습니다. 매개변수 없이 함수를 반환하는 함수는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

script 언어="javascript" >
function show(name)
{alert("Hello World:" name);}
function _show(name)
{
return function()
{
show(name);
}
}
setTimeout(_show(name),1000)
🎜>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.