gpt4 book ai didi

函数内部的 setInterval 内的 javascript undefined variable

转载 作者:行者123 更新时间:2023-11-29 21:52:28 27 4
gpt4 key购买 nike

我在变量范围方面遇到了问题。下面的代码给我 undefined variable 错误。我可以直接在 mymodule 对象中定义 cursorX。但我想这不是正确的方法,因为我最终会在那里得到数十个变量。有没有办法在 mouseTracking 中声明变量?

var mymodule = {
variable1 : false,
variable2 : false,
//some more variables

somefunctionname: function(){

},

//some more functions

mouseTracking: function(){
var cursorX;
var cursorY;
document.onmousemove = function(e,cursorX,cursorY){
cursorX = e.pageX;
cursorY = e.pageY;
}
setInterval("mymodule.saveCursor("+cursorX+","+cursorY+")", 300);
},
}

最佳答案

您在 setInterval() 中传递函数的方式要求它在全局范围内并且它还会“卡住”cursorXcursorY 的初始值,因为您构造的字符串仅在首次调用 setInterval() 时构建一次。但是,cursorXcursorY 在那个时候甚至还没有值,所以这不是你想要的,因为它不会工作。

所以,现在我猜您希望 setInterval() 使用 cursorXcursorY 的实时最新值.您可以使用这样的函数引用来做到这一点:

setInterval(function() {
mymodule.saveCursor(cursorX, cursorY);
}, 300);

这将使用最近保存的 cursorXcursorY 版本,尽管看起来您不必在第一个 mousemove 事件发生之前将它们初始化为任何内容。

关于函数内部的 setInterval 内的 javascript undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373592/

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