Доступ к Глобальному объекту объекта в функции Javascript - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть глобальный объект abc со следующей структурой

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

надеюсь, что я получил правильные обозначения.

значения dir_content передаются из объекта JSON на abc.dir_content = data;

У меня есть функция, как показано ниже

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 ]

1 голос
/ 18 ноября 2011
abc = {
    dir_content: {
        // array of one dir
        dir: [ "hi" ], 
        // array of two files
        files: [
            "1.txt",
            "2.txt"
        ]
    },
    directory: "greeting"
}
0 голосов
/ 18 ноября 2011
dir_content: {
    dir: {
        key: "hi"
    },
    files: {
        key1: "1.txt",
        key2: "2.txt"
    }
}

Обратите внимание на разницу между [], () и {}

[] означает, что вы создаете массив, но вам нужен объект, поэтому в скобках {}. Кроме того, возвращенный dir_content не структурирован правильно. Объект всегда структурирован так:

{ key: 'content' }

Именно поэтому я добавил ключ, ключ 1 и ключ 2 к возвращаемым данным. Если вам удастся правильно структурировать данные, все будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...