gpt4 book ai didi

javascript - 递归函数中的参数串联

转载 作者:行者123 更新时间:2023-11-30 17:17:54 24 4
gpt4 key购买 nike

示例来自“dom 脚本”一书 - jeremy keith。

function moveElement(elementID,final_x,final_y,interval) { 
if (!document.getElementById) return false;
if (!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if (xpos == final_x && ypos == final_y) {
return true;
}
if (xpos < final_x) {
xpos++;
}
if (xpos > final_x) {
xpos--;
}
if (ypos < final_y) {
ypos++;
}
if (ypos > final_y) {
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement = setTimeout(repeat,interval);
}

我不明白为什么这一行有这么多的串联

var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"; 

最佳答案

因为var repeat实际上是函数调用的字符串表示,而不是函数本身。

要在代码中做同样的事情(不使用字符串)你会做这样的事情:

    var repeat = function() { moveElement(elementId, final_x, final_y, interval); }
movement = setTimeout(repeat, interval);

关于javascript - 递归函数中的参数串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com