Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung der Anwendungsbeispiele der Javascript-Funktion setTimeout mit Parametern

Detaillierte Erläuterung der Anwendungsbeispiele der Javascript-Funktion setTimeout mit Parametern

伊谢尔伦
Freigeben: 2017-07-26 17:20:14
Original
1797 Leute haben es durchsucht

Die Methode window.settimeout() bietet zwei Möglichkeiten, eine Funktion mit Parametern aufzurufen:

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

Hinweis: Wenn Sie setTimeout mit einer Parametermethode verwenden, setTimeout( „Funktionsname („+Parameter+“)“, Millisekunden), die Parameter können hier nur in String-Form vorliegen und kein Objekt übergeben
--------------- --- ---------
Die folgende Methode ist falsch und die Statusleiste des Browsers zeigt an, dass die Parameter ungültig sind:

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

--------- - ------------------------------------------------- - --
settimeout() Funktionserweiterung:

Suchen Sie online nach „setTimeout mit Parametern“ Viele Freunde haben viele Methoden geschrieben, um Methodenschleifen mithilfe von setTimeout mit Objekten zu implementieren, zum Beispiel:  

<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>
Nach dem Login kopieren

In diesem Beispiel wird setTimeout verwendet, setTimeout (Rückruffunktion, Zeit, Parameter 1,..., Parameter n).
Ein weiteres Beispiel:  

<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>
Nach dem Login kopieren

In diesem Beispiel wird window.setTimeout überladen und apply wird verwendet, um die vorherige Funktion zurückzurufen.  

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

Wenn die Maus diese Taste drückt, wird test() aufgerufen, übergibt „1“ und alle 1000 Millisekunden erscheint ein Dialogfeld auf dem Bildschirm (1 2.) Das Feld zeigt 1, kein Problem.  

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

Dies kann hier als document.getElementById("btnTest") verstanden werden. Wenn die Maus diese Taste drückt, wird ein Objekt an die Testfunktion übergeben Der Bildschirm zeigt [Objekt] an und zeigt es nach 1000 Millisekunden kein zweites Mal an. Hier kommt das Problem. In der unteren linken Ecke des Browsers wird ein Skriptfehler gemeldet, und die detaillierten Informationen zeigen, dass das Objekt nicht definiert ist.  

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

Der test() in setTimeout hat zum ersten Mal [Objekt] und ist nach 1000 Millisekunden undefiniert. Die Variable wurde nicht zugewiesen Wert, was bedeutet, dass mit dieser Methode Methodenschleifen mit Parametern implementiert werden können, die Parameter jedoch zerstört werden.
Tatsächlich ist dies sehr einfach zu implementieren und es ist nicht erforderlich, einen so langen Code zu schreiben, um dies zu erreichen.  

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

Beachten Sie, dass die Anführungszeichen vor und nach dem Parameter obj in test in setTimeout ein Paar einfache Anführungszeichen innerhalb der doppelten Anführungszeichen haben, etwa so: setTimeout ("test(einfaches Anführungszeichen, doppelte Anführungszeichen + obj + doppelte Anführungszeichen, einfache Anführungszeichen)"), OK~ Der Bildschirm zeigt alle 1000 Millisekunden [Objekt] an und das Objekt wurde erfolgreich übertragen.


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendungsbeispiele der Javascript-Funktion setTimeout mit Parametern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage