Вложенные объекты в javascript, лучшие практики - PullRequest
33 голосов
/ 30 октября 2011

Я хотел бы знать, как правильно создать вложенный объект в javascript.Я хочу базовый объект с именем "defaultsettings".У него должно быть 2 свойства (тип объекта): ajaxsettings и uisettings.Я знаю, что могу написать что-то вроде

var defaultsettings = new Object();
var ajaxsettings = new Object();

defaultsettings.ajaxsettings = ajaxsettings.. etc.

Но я хочу знать, как напечатать это таким образом (я полагаю, это более правильный способ сделать это):

var defaultsettings = { 
    var ajaxsettings = { ... }
};

Полагаю, вы поняли идею.Спасибо!

Ответы [ 3 ]

73 голосов
/ 30 октября 2011

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

var defaultsettings = {
                        ajaxsettings : { "ak1" : "v1", "ak2" : "v2", etc. },
                        uisettings : { "ui1" : "v1", "ui22" : "v2", etc }
                      };

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

var defaultsettings = { };
defaultsettings["ajaxsettings"] = {};
defaultsettings["ajaxsettings"]["somekey"] = "some value";

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

var defaultsettings = {
                        ajaxsettings : {  },
                        uisettings : {  }
                      };

defaultsettings["ajaxsettings"]["somekey"] = "some value";
defaultsettings["uisettings"]["somekey"] = "some value";

Вы можете вкладывать какнасколько вам нравится использование описанных выше техник, и везде, где у вас есть строковый литерал в квадратных скобках, вы можете использовать переменную:

var keyname = "ajaxsettings";
var defaultsettings = {};
defaultsettings[keyname] = {};
defaultsettings[keyname]["some key"] = "some value";

Обратите внимание, что вы можете не использовать переменные дляимена ключей в буквальном синтаксисе {}.

11 голосов
/ 30 октября 2011
var defaultsettings = {
    ajaxsettings: {
        ...
    },
    uisettings: {
        ...
    }
};
3 голосов
/ 30 октября 2011
var defaultSettings = {
    ajaxsettings: {},
    uisettings: {}
};

Взгляните на этот сайт: http://www.json.org/

Также вы можете попробовать вызвать JSON.stringify () для одного из ваших объектов из браузера, чтобы увидеть формат json.Это нужно сделать в консоли или на тестовой странице.

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