Chcę utworzyć obiekt JavaScript ze zmiennymi zagnieżdżonymi, w których niektóre zmienne nie będą miały wartości domyślnej.Deklarowanie zmiennych bez wartości
Obecnie mam to:
var globalVarA = "foo";
var globalVarB = "bar";
var globalVarC;
function myFunction(){
//do something
}
Chciałbym to zmienić na:
var myObject = {
GlobalVars: {
globalVarA: "foo",
globalVarB: "bar",
globalVarC
},
myFunction: function(){
//do something
}
}
Jednak pojawia się następujący błąd:
Expected ':'
Jak mogę zadeklarować tę zmienną bez wartości?
Czy jest to najlepsza praktyka lub czy istnieje alternatywne lepsze rozwiązanie?
Tylko na marginesie. Co byłoby wadą, aby nie ogłaszać "globalVarC" w ogóle, dopóki nie jest wymagane? Ponieważ możesz ustawić "GlobalVars.globalVarC =" cokolwiek ";" nawet jeśli nie jest zadeklarowany. –
@TimBJames to doskonałe pytanie. Na przykład różnica może być wyrażona w sprawdzeniu 'hasOwnProperty'. Osobiście, jeśli jest to tylko do użytku w tej funkcji, w moim własnym kodzie zrobiłbym 'GlobalVars.globalVarC' zamiast jawnie ustawiając go na undefined. –
Tak, pewnie też bym chodził, ponieważ jeśli sprawdzasz istnienie zmiennej, sprawdziłbyś 'if (GlobalVars.globalVarC! = undefined) "co miałoby miejsce w obu przypadkach. –