Подтвердить что ты не робот

Вложенные объекты в javascript, лучшие практики

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

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

defaultsettings.ajaxsettings = ajaxsettings.. etc.

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

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

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

4b9b3361

Ответ 1

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

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";

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

Ответ 2

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

Ответ 3

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

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

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