¿Cómo creo un nuevo objeto en javascript basado en una variable type-string (que contiene el nombre del objeto)?¿Cómo creo un nuevo objeto en javascript basado en una cadena de caracteres?
Ahora tengo: (con más herramientas que vienen de la lista se hacen más largos ...)
function getTool(name){
switch(name){
case "SelectTool":
return new SelectTool();
break;
case "LineTool":
return new LineTool();
break;
case "BlurTool":
return new BlurTool();
break;
case "PointerTool":
default:
return new PointerTool();
break;
}
}
y definido mis herramientas como:
PointerTool.prototype = new Tool;
PointerTool.prototype.constructor = PointerTool;
function PointerTool(){
this.name = "PointerTool";
}
PointerTool.prototype.click = function(x, y){
info("You clicked at: "+x+", "+y);
}
me gustaría conseguir paseo de la (creciente) declaración de cambio, parece 'incorrecta'.
Hipotéticamente, eval podría hacerlo ... –
@ Šime Vidas, pero prácticamente, eval debe evitarse a toda costa: D –
@Gabi, acepto que 'eval()' no es la solución correcta aquí, pero yo Es curioso por qué afirmas que "eval debe evitarse a toda costa". Es una característica no desaprobada del lenguaje, con usos apropiados (e inapropiados), como cualquier otra función. – Lee