在javascript中向函数外发送局部变量
我的函数中有一个局部变量。我想将局部变量发送到全局变量。 例如,这是我的代码在javascript中向函数外发送局部变量,javascript,Javascript,我的函数中有一个局部变量。我想将局部变量发送到全局变量。 例如,这是我的代码 function moveToTop() { var manageTime=setInterval(function () { pacmanNowPosition=117//($('.pacman-down').data('top')+6); var pacmanOtherPosition=pacmanNowPosition-=18; console.log(pa
function moveToTop() {
var manageTime=setInterval(function () {
pacmanNowPosition=117//($('.pacman-down').data('top')+6);
var pacmanOtherPosition=pacmanNowPosition-=18;
console.log(pacmanOtherPosition)
$('.pacman-down').css('top',pacmanOtherPosition).attr('data-top',pacmanOtherPosition);
})
}
因此,我希望每次都发送一个全局变量的局部位置,该全局变量不起作用。全局变量始终是可访问的。只需在
pacmanOtherPosition
处于范围内时进行分配:
// Variables declared outside of functions with the `var` keyword are Global
var MyGlobal = null;
function moveToTop() {
var manageTime = setInterval(function () {
pacmanNowPosition=117//($('.pacman-down').data('top')+6);
var pacmanOtherPosition=pacmanNowPosition-=18;
console.log(pacmanOtherPosition)
$('.pacman-down').css('top',pacmanOtherPosition).attr('data-top',pacmanOtherPosition);
// Assign value to global here
MyGlobal = pacmanOtherPosition;
});
}
始终有效的解决方案是将其存储在窗口的属性中
function f(){
my_variable = 'hello';
window.my_variable = my_variable;
}
这一点在年前就已经被问过了 您可以只在
moveToTop
函数中声明变量,但不使用var
关键字,该关键字在全局范围而不是函数的内部范围中定义变量。大概是这样的:
pacmanOtherPosition = pacmanNowPosition -= 18;
如您所见,在
pacmanOtherPosition
之前没有var
。尝试在函数外部访问它,它就会工作。为什么不能将它分配给全局变量?您已经在使用pacmanNowPosition
执行此操作。那么为什么这一个不同呢?我知道,但你必须展示它,知道我很抱歉,但你能帮我吗?这是众所周知的反模式。变量应该始终被正式声明。我不认为它是“如何生成全局变量?”。我将其理解为“如何更新全局变量?”。不管怎样,你的回答都是错误的建议。谢谢,但如果可以的话,你能连接我的电脑并帮助我吗?人不工作,你能连接我的电脑并帮助我吗?谢谢你,我展示的代码非常简单,可以工作。如果您遇到问题,那是因为代码中的其他问题与您的问题无关。您应该检查开发人员工具窗口(F12)的控制台以查看是否存在错误。我们不会连接个人电脑并为他们解决问题。这不是堆栈溢出的原因。人不能工作。你能连接我的电脑并帮助我吗?非常感谢。