Пример javascript дерева пространств имен и объяснение синтаксиса - PullRequest
0 голосов
/ 22 августа 2011

Пример javascript дерева пространств имен и объяснение синтаксиса.

Это пространство имен должно быть определено в javascript:

  1. корень

  2. root.person

  3. root.home

  4. root.home.relative

моя попытка не так:

var root='';
root.person='';
root.home='';
root.home.relative='';

Пожалуйста, объясните ваш код, я не знаю JS, а PHP / C / Java

Спасибо

Ответы [ 4 ]

3 голосов
/ 22 августа 2011

JavaScript не имеет понятия «пространства имен» в смысле Java и т. Д. Вместо этого мы используем старые добрые объекты и добавляем атрибуты к этим объектам.

Если root является вашим " пространством имен ", мы определяем root как объект и определяем элементы пространства имен как members для объекта (" человек "," дом "," родственник ").

Чтобы объявить объект (для root), проще всего использовать синтаксис литерала объекта

var root = {
    person: 'Jim',
    home: 'London'
}

Вы можете вложить объекты, используя этот синтаксис, следующим образом (для достижения вашего вложенного relative объекта:

var root = {
    person: {
        'first_name': 'Matt',
        'last_name': 'Smith'
    },
    home: {
        relative: 'Frank'
    }
} 
1 голос
/ 22 августа 2011

Не уверен, что я полностью понимаю, что вы после, но вы имеете в виду это:

var root = {};
root.person = '';
root.home = {};
root.home.relative = '';

Если вы хотите дать объекту дополнительные свойства динамически, а не только одно значение, объявите его как пустой объектбуквальный var obj = {}; obj.subObj = {}; и т. д. и т. д.

0 голосов
/ 22 августа 2011

Если вы хотите вложить свойства, сделайте переменную объектом, а не просто строкой:

var root = {};
root.person = '';
root.home = {};
root.home.relative = '';
console.log(root);

Если вы используете Firebug, console.log будет красиво печатать иерархию объектов.

0 голосов
/ 22 августа 2011

Если ваш вопрос заключается в том, что вы делаете неправильно .. Вам нужно определить пространство имен следующим образом

var root = {};
root.person = {}; 

Уже есть довольно подробный ответ Stackoverflow на эту тему Как мне объявитьпространство имен в JavaScript? , и я предлагаю вам обратиться за дополнительной помощью.

...