Я повсюду читал, что глобальные переменные плохие и следует использовать альтернативы. В частности, в Javascript, какое решение мне выбрать.
Я думаю о функции, которая при подаче двух аргументов (function globalVariables(Variable,Value)
) проверяет, существует ли переменная в локальном массиве, и если она устанавливает ее значение в Value
, иначе добавляются Variable
и Value
. Если функция вызывается без аргументов (function globalVariables()
), она возвращает массив. Возможно, если функция запускается только с одним аргументом (function globalVariables(Variable)
), она возвращает значение Variable
в массиве.
Что вы думаете? Хотелось бы услышать ваши альтернативные решения и аргументы в пользу использования глобальных переменных.
Как бы вы использовали globalVariables();
function append(){
globalVariables("variable1","value1"); //globalVariables() would append variable1 to it's local array.
};
function retrieve(){
var localVariable1 = globalVariables("variable1"); //globalVariables() would return "value1".
};
function retrieveAll(){
var localVariable1 = globalVariables(); //globalVariables() would return the globalVariable()'s entire, local [persistently stored between calls] array.
};
function set(){
globalVariables("variable1","value2"); //globalVariables() would set variable1 to "value2".
};
Это шаблон Singleton BTW?
В этом конкретном сценарии функция может установить переменную в один момент времени, а гораздо позже другая функция, возможно, когда пользователь отправит форму, должна будет получить эту переменную. Следовательно, первая функция не может передать переменную в качестве аргумента более поздней функции, поскольку она никогда не будет вызвана с первой.
Спасибо, я ценю вашу помощь!