在Javascript函数中访问对象的Global对象

时间:2011-11-18 11:04:03

标签: javascript json object scope global

我有一个具有以下结构的全局对象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)在控制台中打印正确的结果。但它在函数中调用时表示未定义。

我需要遍历函数中的dir和文件数组。但现在我坚持让js读取函数中的值。

编辑:我发现我的全局对象声明有问题。小提琴链接http://jsfiddle.net/xh5YH/。匿名函数声明有什么问题?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

请注意[](){}

之间的区别

[]表示您正在创建一个数组,但是您需要一个Object,因此需要{}括号。 此外,返回的dir_content结构不正确。 Object的结构总是如下:

{ key: 'content' }

这就是我为返回的数据添加了key,key1和key 2的原因。如果您设法正确构建数据,一切都会有效。