javascript - 无法通过 JavaScript 访问变量 - 范围错误?

标签 javascript scope

我在单独的 .js 文件中有一些数据,与此类似:

data = new Object();
data['cat'] = ['Mr. Whiskers','Wobbles'];
data['dog'] = ['Toothy'];
data['fish'] = ['goldy','roose'];

function getStuff(info)
{
  var stuff = data[info.value];
  return stuff;
}

现在在另一个带有 block 的 html 文件中,我有这样的内容:

function theDrop(dynamic) {
  alert(getStuff(dynamic));
}

该框显示未定义,为什么?

最佳答案

您要传递给 theDrop 的内容是什么?如果你想调用.value,那么你需要传递整个对象,否则你会得到undefined

<强> Live Demo

var select = document.getElementById("selectme");

select.onchange = function(){
    theDrop(this);
}

data = new Object();
data['cat'] = ['Mr. Whiskers','Wobbles'];
data['dog'] = ['Toothy'];
data['fish'] = ['goldy','roose'];

function getStuff(info)
{
    var stuff = data[info.value];
    return stuff;
}

function theDrop(dynamic) {
    alert(getStuff(dynamic));
}

关于javascript - 无法通过 JavaScript 访问变量 - 范围错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563542/

相关文章:

javascript - Openlayers2 : I want to Draw a buffer on openlayer2 according to user input length

ruby - block 局部变量的存在只是为了增强可读性吗?

c++ - C变量范围特定问题

javascript - 在 for 循环 : variable scope miscomprehension 内绑定(bind)监听器

javascript - 立即调用 IIFE 如何防止它污染全局范围?

javascript - 大文件的快速文件散列

javascript - 如何从 <ons-tabbar> 页面使用 <ons-navigator>?

javascript - D3 : Merge JSON object entries

javascript - 等到所有 promise 都在 JavaScript 中解决

自动和作用域的 C++ 初始化