Este artigo analisa a solução para o problema que o setTimeout () não pode chamar a função do parâmetro em JS. Compartilhe -o para sua referência, como segue:
Solução: reescreva o método setTimeout () e use a função de fechamento. do seguinte modo:
var _st = window.setTimeout; window.setTimeout = function (Fref, mdelay) {if (typeof Fref == 'function') {var Argus = Array.prototype.slice.call (Argumentos, 2); var f = function () {Fref.Apply (null, Argus); }; retornar _st (f, mdelay); } retornar _st (Fref, mdelay);}Com essa reescrita, ao usar o setTimeout () para chamar a função do parâmetro, você pode usar o seguinte formulário:
setTimeout (diversão, 10, param);
onde diversão é a função; 10 é o ciclo de chamada, a unidade é milissegundos; Param é o parâmetro da função divertida.
Outra maneira mais simples:
função movendo (id, target_x, target_y, t) {var ele = document.getElementById (id); // alert ("DIVNOBJET:"+ELE) var xpos = parseint (ele.style.left); //alert(ele.style.left) var ypos = parseint (ele.style.top); if (xpos <target_x) {xpos ++; } if (yPOS <Target_y) {ypos ++; } ele.style.left = xpos + "px"; ele.style.top = ypos+"px"; // A função em si é chamada recursivamente, soletrada em um formulário de string, preste atenção às citações do primeiro parâmetro var repent = "moveing ('"+id+"',"+target_x+","+alvo_y+"," t+")"; var movment = setTimeout (repetir, t);}For more information about JavaScript related content, please check out the topics of this site: "Summary of JavaScript switching effects and techniques", "Summary of JavaScript search algorithm skills", "Summary of JavaScript animation effects and techniques", "Summary of JavaScript errors and debugging techniques", "Summary of JavaScript data structures and algorithm skills", "Summary of Javascript Algoritmos e Técnicas de Traversal "e" Resumo do Uso do Javascript Mathematic Operations "
Espero que este artigo seja útil para a programação JavaScript de todos.