fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url);"/> fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); //alert(url);">

 >  기사  >  웹 프론트엔드  >  매개변수가 포함된 javascript 함수 setTimeout의 사용 예에 ​​대한 자세한 설명

매개변수가 포함된 javascript 함수 setTimeout의 사용 예에 ​​대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-26 17:20:141791검색

window.settimeout() 메소드에는 매개변수가 있는 함수를 호출하는 두 가지 방법이 있습니다.

function init(){ 
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); 
//alert(url); 
window.setTimeout(function(){ searchJDWater(url);},100); 
}
function init(){ 
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); 
//alert(url); 
window.setTimeout(“searchJDWater(”+url+“)”, 100); 
}

참고: 매개변수와 함께 setTimeout을 사용할 때 setTimeout("function name("+parameter+")", milliseconds) 에 주의하세요. 여기의 매개변수는 문자열 형식만 가능하며 객체를 전달할 수 없습니다
---------------
다음 방법은 다음과 같습니다. 틀렸습니다. 브라우저 상태 표시줄에 매개변수가 유효하지 않다는 메시지가 표시됩니다.

function init(){ 
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); 
//alert(url); 
window.setTimeout(searchJDWater(url), 100); 
}

-------------------------------- -- ---------------
settimeout() 함수 확장:

온라인에서 "매개변수가 포함된 setTimeout"을 찾아보세요. 많은 친구들이 있습니다. setTimeout을 사용하여 객체로 메서드 루프를 구현하는 방법은 여러 가지가 있습니다. 예:  

<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>

이 예에서는 setTimeout 사용법, setTimeout(콜백 함수, 시간, 매개변수 1,..., 매개변수 n)입니다.
또 다른 예:  

<script type="text/javascript"> 
  var _st = window.setTimeout; 
  window.setTimeout = function(fRef, mDelay) { 
  if(typeof fRef == &#39;function&#39;){ 
  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,&#39;fason&#39;); 
  </script>

이 예에서는 window.setTimeout이 다시 로드되고 Apply를 사용하여 이전 함수를 콜백합니다.  

<script language="javascript"> 
  function test(obj) 
  { 
  alert(obj); 
  setTimeout("test("+ obj +")",1000); 
  } 
  </script> 
  <input id="testButton" type="button" onclick="test(1)">

마우스가 이 버튼을 누르면 test()를 호출하여 "1"을 전달하고 대화 상자가 1000밀리초(1초)마다 화면에 팝업되어 1을 표시하며 문제 없습니다.  

<script language="javascript"> 
  function test(obj) 
  { 
  alert(obj); 
  setTimeout("test("+ obj +")",1000); 
  } 
</script> 
  <input id="btnTest" type="button" onclick="test(this)">

여기서는 document.getElementById("btnTest")로 이해하면 됩니다. 마우스가 이 버튼을 누르면 테스트 함수에 개체가 전달되고 화면에 표시되지 않습니다. 1000밀리초 후. 여기서 문제가 발생합니다. 브라우저 왼쪽 하단에 스크립트 오류가 보고되고, 자세한 정보에는 개체가 정의되지 않은 것으로 표시됩니다.  

<script language="javascript"> 
  function test(obj) 
  { 
  alert(obj); 
  setTimeout("test()",1000); 
  } 
  </script> 
  <input id="testButton" type="button" onclick="test(this)">

setTimeout의 test()에는 매개변수가 없습니다. 처음에는 [object]를 표시하고 1000밀리초 후에는 정의되지 않았습니다. 즉, 이 방법을 사용할 수 있습니다. 매개변수를 사용하여 메소드 루프를 구현하지만 매개변수가 삭제됩니다.
사실 이는 구현이 매우 간단하며 이를 달성하기 위해 그렇게 긴 코드를 작성할 필요가 없습니다.  

<script language="javascript"> 
  function test(obj) 
  { 
  alert(obj); 
  setTimeout("test(&#39;"+ obj +"&#39;)",1000); 
  } 
  </script> 
  <input id="testButton" type="button" onclick="test(this)">

setTimeout의 test에서 매개변수 obj 앞뒤의 따옴표에는 다음과 같이 큰따옴표 안에 작은따옴표 쌍이 있습니다. setTimeout("test(작은따옴표 큰따옴표 + obj +큰따옴표 작은따옴표)"), 알겠습니다~ 화면에 1000밀리초마다 [개체]가 표시되고 개체가 성공적으로 전송되었습니다.


위 내용은 매개변수가 포함된 javascript 함수 setTimeout의 사용 예에 ​​대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.