不同函数中的javascript对象值-从地图中删除多段线
谁能帮我一下吗。我不知道为什么在函数“go2”中无法识别全局定义的对象“arr”,我需要通过函数“go2”传递对象吗?下面是我的示例代码不同函数中的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
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
。这可能会有帮助:非常感谢。我也很感激这个链接。没问题!很高兴我能帮忙。:)