Foros del Web » Programando para Internet » Javascript »

No uso de eval()

Estas en el tema de No uso de eval() en el foro de Javascript en Foros del Web. Hola, He leido en varios sitios que no recomiendan el uso de eval() por motivos de performance y seguridad. Como una alternativa se recomiendo usar ...
  #1 (permalink)  
Antiguo 12/01/2009, 22:46
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 7 meses
Puntos: 0
No uso de eval()

Hola,
He leido en varios sitios que no recomiendan el uso de eval() por motivos de performance y seguridad.
Como una alternativa se recomiendo usar [].
Pero para mi caso no he encontrado como solucionarlo:

Código:
var p=eval('loaderObj.ds.reader.jsonData.tableColumns.'+grid.id+'.'+grid.colModel.getColumnId(columnIndex));
Como pueden ver yo quiero tomar el valor de 'loaderObj.ds.reader.jsonData.tableColumns.' + grid.id + grid.colModel.getColumnId(columnIndex)

Como podría hacerlo sin usar eval() ?
__________________
ratamaster
  #2 (permalink)  
Antiguo 12/01/2009, 23:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: No uso de eval()

Cita:
Iniciado por ratamaster Ver Mensaje
Hola,
He leido en varios sitios que no recomiendan el uso de eval() por motivos de performance y seguridad.
Como una alternativa se recomiendo usar [].
Pero para mi caso no he encontrado como solucionarlo:

Código:
var p=eval('loaderObj.ds.reader.jsonData.tableColumns.'+grid.id+'.'+grid.colModel.getColumnId(columnIndex));
Como pueden ver yo quiero tomar el valor de 'loaderObj.ds.reader.jsonData.tableColumns.' + grid.id + grid.colModel.getColumnId(columnIndex)

Como podría hacerlo sin usar eval() ?
Código:
var p=loaderObj.ds.reader.jsonData.tableColumns['grid.id']['grid.colModel'].getColumnId(columnIndex);
Cuando abres un corchete, quitas el punto que debería precederlo... y el interior del corchete puede ser una variable o texto literal (entrecomillado)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 13/01/2009, 07:48
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: No uso de eval()

Aha, entiendo la idea, pero me sigue tirando un error:
loaderObj.ds.reader.jsonData.tableColumns['grid.id'] is undefined

Posteo un poco más de código:

Código:
defineEuro: function(cellValue, cell, record, rowIndex, columnIndex, store, grid){
            var columnRights=eval('loaderObj.ds.reader.jsonData.tableColumns.'+grid.id+'.'+grid.colModel.getColumnId(columnIndex));
}
Gracias por tu ayuda
__________________
ratamaster
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.