Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée des exemples d'utilisation de la fonction javascript setTimeout avec paramètres

伊谢尔伦
Libérer: 2017-07-26 17:20:14
original
1741 Les gens l'ont consulté

La méthode window.settimeout() a deux manières d'appeler une fonction avec des paramètres :

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

Remarque : lors de l'utilisation de setTimeout avec une méthode de paramètre, setTimeout( "Nom de la fonction ("+paramètre+")", millisecondes), les paramètres ici ne peuvent être que sous forme de chaîne et ne peuvent pas transmettre d'objet
--------------- --- ---------
La méthode suivante est erronée et la barre d'état du navigateur indiquera que les paramètres ne sont pas valides :

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

--------- - ------------------------------------------------- - --
extension de fonction settimeout() :

Recherchez "setTimeout avec paramètres" en ligne De nombreux amis ont écrit de nombreuses méthodes pour implémenter des boucles de méthodes en utilisant setTimeout avec des objets, par exemple :  .

<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>
Copier après la connexion

Dans cet exemple, utilisation de setTimeout, setTimeout (fonction de rappel, heure, paramètre 1,..., paramètre n).
Autre exemple :  

<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>
Copier après la connexion

Dans cet exemple, window.setTimeout est surchargé et apply est utilisé pour rappeler la fonction précédente.  

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

Lorsque la souris appuie sur ce bouton, test() est appelé, en passant "1", et une boîte de dialogue apparaît à l'écran toutes les 1000 millisecondes (1 seconde) La case affiche 1, pas de problème.  

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

Cela peut ici être compris comme document.getElementById("btnTest") Lorsque la souris appuie sur ce bouton, un objet est transmis à la fonction de test. l'écran affiche [objet] et ne l'affiche pas une seconde fois après 1 000 millisecondes. Voici le problème. Une erreur de script est signalée dans le coin inférieur gauche du navigateur et les informations détaillées montrent que l'objet n'est pas défini.  

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

Le test() dans setTimeout n'a pas de paramètres. Il affiche [objet] pour la première fois et n'est pas défini après 1000 millisecondes. La variable n'a pas reçu de paramètre. valeur, ce qui signifie que l'utilisation de cette méthode peut implémenter des boucles de méthode avec des paramètres, mais les paramètres sont détruits.
En fait, c'est très simple à mettre en œuvre, et il n'est pas nécessaire d'écrire un code aussi long pour y parvenir.  

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

Notez que les guillemets avant et après le paramètre obj dans test dans setTimeout ont une paire de guillemets simples entre guillemets doubles, comme ceci : setTimeout ("test(guillemet simple Guillemets doubles + obj + guillemets doubles guillemets simples)"), OK~ L'écran affiche [objet] toutes les 1 000 millisecondes et l'objet est transféré avec succès.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!