constantemente me encuentro pasando los valores de configuración de funciones para acceder a ellos de esta manera:Cómo obtener el valor del objeto, con el valor por defecto
var arg1 = 'test1';
if(isUndefined(config.args.arg1)){
arg1 = config.args.arg1;
}
var arg2 = 'param2';
if(isUndefined(config.args.arg2)){
arg2 = config.args.arg2;
}
var arg3 = '123';
if(isUndefined(config.args.arg3)){
arg3 = config.args.arg3;
}
donde más tarde los uso como esto:
var url = '<some-url>?id='+arg1+'&='+arg2 +'=' + arg3;
¿El jQuery/ExtJS o cualquier otro marco proporciona una solución para acceder a variables como esta de una manera simple, y dar a las variables un valor predeterminado?
Algo así como:
getValueOfObject(config,'args.arg3','<default>');
O hay quizá una solución estándar para esto.
NOTA:
Yo también estaba pensando en el patrón común en el que tienen valores por defecto
var defaults = {
args: {
args1: ....
}
...
}
y haciendo una combinación de objetos.
Y luego codificando el objeto a una cadena param. Pero como puede ver, los valores del objeto también a veces contienen nombres de parámetros.
Creo que estará bien si 'config.args.arg1' no está definido, pero ¿no fallará si' config' o 'config.args' no está definido? –
No, undefined se evalúa como falso, por lo que la segunda parte de la condición se asigna a 'foo' en dicho escenario. – karim79
@ karim79 él está implicando que 'config.args.arg1' arrojará si' config.args === undefined' – Raynos