不同函数中的javascript对象值-从地图中删除多段线

不同函数中的javascript对象值-从地图中删除多段线,javascript,google-maps,object,gmaps.js,Javascript,Google Maps,Object,Gmaps.js,谁能帮我一下吗。我不知道为什么在函数“go2”中无法识别全局定义的对象“arr”,我需要通过函数“go2”传递对象吗?下面是我的示例代码 var arr = {}; function go(){ var id = "id"; var val = 2; arr[id] = val; } function go2(name){ console.log(name); // can't get this

谁能帮我一下吗。我不知道为什么在函数“go2”中无法识别全局定义的对象“arr”,我需要通过函数“go2”传递对象吗?下面是我的示例代码

    var arr = {};
    function go(){
       var id = "id";
       var val = 2;
       arr[id] = val;
    }
    function go2(name){
       console.log(name);
       // can't get this to show the name value which should be 2 defined by 'val which is defined in the 'go' function.
    }
    setInterval(function(){ 
       var id = "id";
       var name = arr[id];
       go2(name);
    }, 3000);

编辑:我没有像其他人指出的那样调用
go
函数。我在这里发布的代码是我当前工作的简化版本。我在这里创作了一把小提琴来展示我的作品。逻辑是一样的,但我的小提琴与谷歌地图有关。在使用drawRoute方法绘制多段线后,我无法删除基于ID的多段线,在本例中,ID是目标坐标。第29行的drawnRouteObj始终未定义

从您在此处提供的代码来看,
go
似乎永远不会执行,这意味着
arr
是一个空对象,因此在setInterval函数中引用
arr[id]
将抛出错误。这就是你所经历的吗

这些函数是如何调用的?没有显示在
arr
上设置任何属性。你从不调用go()。对于一个调用它的对象文本的混乱名称
arr
,大多数人会认为这意味着数组,这不是我的错误,我忘记了在我的代码的这个简化示例中启动代码函数。在我的代码中,go函数是在每10秒调用一次ajax调用中启动的。charlieftl我将在以后的文章中记住这一点。请尝试从代码中创建一个。理想情况下,你的问题应该是独立的。你是对的。我的错误。这是我的代码逻辑的简化版本。我忘记在这段代码中启动go函数了。启动go功能后,它工作。我的代码仍然有问题,但我会看看是否可以扩展更多。谢谢heylookitsme。由于我正在向“go”函数中全局定义的“arr”对象添加一个值,我是否能够在不同的函数中使用它而不通过它?我想我要问的是,在“go”函数中具有新添加值的“arr”对象是否存储在缓存中,以便我在其他函数中使用它?是的,只要在尝试引用
arr
对象中的任何属性之前调用
go
。这可能会有帮助:非常感谢。我也很感激这个链接。没问题!很高兴我能帮忙。:)