在javascript中发送一个局部变量到函数外

时间:2018-01-23 23:08:48

标签: javascript

我的函数中有一个局部变量。我想将我的局部变量发送到全局变量。 例如,这是我的代码

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,这是一个不起作用的全局变量的本地变量。

3 个答案:

答案 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。尝试在函数外部访问它,它将起作用。