【发布时间】:2011-11-18 11:04:02
【问题描述】:
我有一个具有以下结构的全局对象 abc
abc = {
dir_content: {
dir: [
"hi"
]
files: [
"1.txt",
"2.txt"
]
}
directory: "greeting"
}
希望我的符号正确。
dir_content 的值由 abc.dir_content = data; 从 JSON 对象传递
我有如下功能
function show_dir() {
console.log(abc.dir_content.dir);
console.log(abc.directory);
}
我期待console.log(abc.dir_content.dir) 向我表示你好。但它说它是未定义的。 console.log(abc.directory) 显示问候语就好了。
添加:我可以在控制台中使用 console.log(abc.dir_content.dir) 打印正确的结果。但是在函数中调用时会显示未定义。
我需要遍历函数中的目录和文件数组。但现在我坚持让 js 读取函数中的值。
编辑:我发现我的全局对象声明有问题。小提琴链接http://jsfiddle.net/xh5YH/。匿名函数声明有什么问题?
【问题讨论】:
-
您的符号实际上没有多大意义。
dir应该是一个数组吗? -
这显然意味着 abc.dir_content 的值没有设置。尝试记录 abc.dir_content 以查看 JSON 对象中的值是否已设置
-
好吧..我不擅长记谱法。无论如何, abc 是一个全局对象。 dir_content 是 abc 的一个属性,它带有一个带有数组的 JSON 对象,即 dir 和 files。添加...我可以在控制台中毫无问题地读取全局对象。但是,在函数中传递的相同命令返回错误。
标签: javascript json object scope global