Javascript'te değişken bir dize (nesnenin adını içeren) temel alarak yeni bir nesneyi nasıl oluşturabilirim?Javascript'te tip-dizgeye dayalı olarak yeni bir nesneyi nasıl oluşturabilirim?
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;
}
}
(... uzun alacak listesi geliyor daha araçlarıyla) Ve benzeri Aletlerimi tanımlamıştır:: Artık
Ben
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);
}
Ben binmek almak istiyorum (büyüyen) anahtar deyimi, 'yanlış' gibi görünüyor.
Varsayımsal olarak, bunu yapabilirdi ... –
@ Šime Vidas, ama pratik olarak, tüm maliyetlerden kaçınılmalıdır: D –
@Gabi, 'eval() 'ın burada doğru çözüm olmadığını kabul ediyorum, ama ben “Neden her ne pahasına olursa olsun kaçınılmalıdır” diye sorduğunuzu merak ediyorsunuz. Diğer tüm özellikler gibi, uygun (ve uygun olmayan) kullanımlarla dilin kullanım dışı bir özelliği. – Lee