访问对象的全局对象的Javascript功能

问题描述:

我有以下结构访问对象的全局对象的Javascript功能

abc = { 
    dir_content: { 
     dir: [ 
      "hi" 
     ] 
     files: [ 
      "1.txt", 
      "2.txt" 
     ] 
    } 
    directory: "greeting" 
} 

希望我得到的符号正确的一个全局对象ABC。

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/。匿名函数声明有什么问题?

+1

你的符号实际上没有多大意义。 'dir'应该是一个数组吗? – pimvdb

+0

这显然意味着没有设置abc.dir_content的值。尝试记录abc.dir_content以查看JSON对象的值是否设置为 – pradeek

+0

好的。我在符号上表现不好。无论如何,abc是一个全局对象。 dir_content是abc的一个属性,带有一个JSON对象,数组即dir和文件。 加入...我可以在控制台中读取没有问题的全局对象。然而,该函数中传递的相同命令返回错误。 – resting

dir_content: { 
    dir: { 
     key: "hi" 
    }, 
    files: { 
     key1: "1.txt", 
     key2: "2.txt" 
    } 
} 

通知[](){}

[]之间的差异意味着要创建一个数组,但需要一个对象,因此{}括号。 另外,返回的dir_content结构不正确。一个对象总是这样构造的:

{ key: 'content' } 

这就是为什么我在返回的数据中添加了key,key1和key 2的原因。如果你设法正确地构造数据,一切都会起作用。

+0

为什么downvote?要访问返回的数据的内容,它需要像我发布的代码那样结构化。 –

+0

目录和文件是数组。好吧..我加入钥匙。 – resting

+0

如果它们是数组,则不必添加密钥。在我看到您对阵列的评论之前,我刚刚发布了代码;) –

abc = { 
    dir_content: { 
     // array of one dir 
     dir: [ "hi" ], 
     // array of two files 
     files: [ 
      "1.txt", 
      "2.txt" 
     ] 
    }, 
    directory: "greeting" 
} 
+0

感谢您对我的支持...... :) – resting

+0

不客气,放声说谢谢,接受答案:) – Triptych

+0

upvoted,但这并不能真正回答我的问题。在我原来的帖子的底部放了一个小提琴链接。我不知道为什么匿名函数声明全局对象不起作用。 – resting