Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中向函数外发送局部变量_Javascript - Fatal编程技术网

在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)的控制台以查看是否存在错误。我们不会连接个人电脑并为他们解决问题。这不是堆栈溢出的原因。人不能工作。你能连接我的电脑并帮助我吗?非常感谢。