我的函数中有一个局部变量。我想将我的局部变量发送到全局变量。 例如,这是我的代码
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
,这是一个不起作用的全局变量的本地变量。
答案 0 :(得分:2)
全局变量始终可访问。只需在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;
});
}
答案 1 :(得分:0)
始终有效的解决方案是将其存储在窗口的属性中。
function f(){
my_variable = 'hello';
window.my_variable = my_variable;
}
答案 2 :(得分:-1)
之前已经在here中询问过。
您可以在moveToTop
函数内部声明变量,但不使用var
关键字,该关键字在全局范围内定义它而不是函数的内部范围。像这样:
pacmanOtherPosition = pacmanNowPosition -= 18;
如你所见,var
之前没有pacmanOtherPosition
。尝试在函数外部访问它,它将起作用。