Javascript中的本地变量和全局变量

时间:2014-04-20 22:41:51

标签: javascript function d3.js global-variables

我在Javascript中有这段代码:

var words = [];

d3.json("myFile.json", function(data) {
    words = data.words;
    console.log(words);  //Log output to console
});

console.log(words);  //Log output to console

第一个console.log(words);显示七个对象的数组。 但第二个console.log(words);显示一个空数组。因此看起来words函数之外的d3.json与该函数内的words不同。

我也尝试在函数外使用console.log(window.words);,它仍然显示一个空数组。

如何从myFile.json函数中获取我在d3.json函数中读取的数据?

1 个答案:

答案 0 :(得分:3)

d3.json是一个异步函数。这意味着您传递的代码不会立即执行,而是在JSON文件请求返回后作为回调执行。也就是说,为文件发送网络请求,但正常的执行流程仍在继续。

console.log(words);外部d3.json只是在调用返回之前执行并填充数组。