Genste objecten in javascript, best practices

Ik zou graag de juiste manier willen weten om een genest object in javascript te maken. Ik wil een basisobject met de naam “defaultsettings”. Het moet 2 eigenschappen hebben (objecttype): ajaxsettings en uisettings. Ik weet dat ik iets kan schrijven als

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

Maar wat ik wil weten is hoe ik het op deze manier moet typen (waarvan ik veronderstel dat dit een correctere manier is):

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

Ik neem aan dat je het idee begrijpt. Bedankt!


Antwoord 1, autoriteit 100%

Als u de instellingen van tevoren weet, kunt u deze in een enkele verklaring definiëren:

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

Als u de waarden niet van tevoren weet, kunt u het object op het hoogste niveau definiëren en vervolgens eigenschappen toevoegen:

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

Of halverwege de twee, definieer het hoogste niveau met geneste lege objecten als eigenschappen en voeg vervolgens eigenschappen toe aan die geneste objecten:

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

Je kunt zo diep nesten als je wilt met de bovenstaande technieken, en overal waar je een letterlijke tekenreeks tussen vierkante haken hebt, kun je een variabele gebruiken:

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

Houd er rekening mee dat u geenvariabelen kunt gebruiken voor sleutelnamen in de letterlijke syntaxis { }.


Antwoord 2, autoriteit 15%

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

Antwoord 3, autoriteit 5%

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

Bekijk deze site: http://www.json.org/

U kunt ook proberen JSON.stringify() aan te roepen op een van uw objecten vanuit de browser om het json-formaat te zien. Je zou dit in de console of een testpagina moeten doen.

Other episodes