Cet article analyse la solution au problème que setTimeout () ne peut pas appeler la fonction de paramètre dans JS. Partagez-le pour votre référence, comme suit:
Solution: réécrivez la méthode setTimeout () et utilisez la fonction de fermeture. comme suit:
var _st = window.setTimeout; window.setTimeout = function (fref, mdelay) {if (typeof fref == 'function') {var argutu = array.prototype.slice.call (arguments, 2); var f = function () {fref.apply (null, argutu); }; return _st (f, mdelay); } return _st (fref, mdelay);}Avec une telle réécriture, lorsque vous utilisez setTimeout () pour appeler la fonction de paramètre, vous pouvez utiliser le formulaire suivant:
setTimeout (Fun, 10, param);
où le plaisir est la fonction; 10 est le cycle d'appel, l'unité est une milliseconde; Param est le paramètre de la fonction amusante.
Une autre manière plus simple:
fonction mobile (id, target_x, target_y, t) {var ele = document.getElementById (id); // alert ("divobject:" + ele) var xpos = parseInt (ele.style.left); //alert(ele.style.left) var ypos = parseInt (ele.style.top); if (xpos <cible_x) {xpos ++; } if (ypos <Target_y) {yPos ++; } ele.style.left = xpos + "px"; ele.style.top = ypos + "px"; // La fonction elle-même est appelée récursive, épelée en une forme de chaîne, faites attention aux citations du premier paramètre var répétitif = "Moveing ('" + id + "'," + cible_x + "," + cible_y + "," + t + ")"; var movment = setTimeout (répéter, t);}Pour plus d'informations sur le contenu lié à JavaScript, veuillez consulter les sujets de ce site: "Résumé des effets et techniques de commutation JavaScript", "Résumé des effets et techniques de recherche JavaScript", "Résumé des erreurs Javascript et des techniques de débogage" Algorithmes et techniques de traversée JavaScript ", et" Résumé de l'utilisation des opérations mathématiques JavaScript "
J'espère que cet article sera utile à la programmation JavaScript de tous.