Home > Web Front-end > JS Tutorial > Detailed explanation of usage examples of javascript function setTimeout with parameters

Detailed explanation of usage examples of javascript function setTimeout with parameters

伊谢尔伦
Release: 2017-07-26 17:20:14
Original
1837 people have browsed it

The window.settimeout() method has two ways to call a function with parameters:

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

Note: When using setTimeout with a parameter method, be careful, setTimeout("function name(" +parameter+")", milliseconds), the parameters here can only be in string form, and cannot pass an object
-------------------- -------
The following method is wrong, and the browser status bar will prompt that the parameters are invalid:

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

---------------- -----------------------------------------------
settimeout () Function expansion:

Search the Internet for "setTimeout with parameters". Many friends have written many methods to implement method loops using setTimeout with objects, for example:  

<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>
Copy after login

In this example, setTimeout usage, setTimeout (callback function, time, parameter 1,..., parameter n).
Another example:  

<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>
Copy after login

In this example, window.setTimeout is reloaded and apply is used to call back the previous function.  

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

When the mouse presses this button, test() is called, passing "1" in, and a dialog box pops up on the screen every 1000 milliseconds (1 second). Displays 1, no problem.  

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

This here can be understood as document.getElementById("btnTest"). When the mouse presses this button, an object is passed to the test function, and the screen displays [object] will not be displayed a second time after 1000 milliseconds. Here comes the problem. A script error is reported in the lower left corner of the browser, and the detailed information shows that object is undefined.  

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

test() in setTimeout has no parameters. It displays [object] for the first time and undefined after 1000 milliseconds. The variable has not yet been assigned a value, that is to say, use this method. It is possible to implement method loops with parameters, but the parameters are destroyed.
In fact, this can be achieved very easily, and there is no need to write such a long code to achieve it.  

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

Note that the quotation marks before and after the parameter obj in test in setTimeout have a pair of single quotation marks within the double quotation marks, like this: setTimeout("test(single quotation mark double quotation mark +obj+double quotes single quotes)"), OK~ The screen displays [object] every 1000 milliseconds, and the object is transferred successfully.


The above is the detailed content of Detailed explanation of usage examples of javascript function setTimeout with parameters. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template