मैं एक वैरिएबल टाइप-स्ट्रिंग (ऑब्जेक्ट का नाम युक्त) के आधार पर जावास्क्रिप्ट में एक नई ऑब्जेक्ट कैसे बना सकता हूं?मैं टाइप-स्ट्रिंग के आधार पर जावास्क्रिप्ट में एक नया ऑब्जेक्ट कैसे बना सकता हूं?
अब मेरे पास है: (अधिक उपकरण सूची आने वाले लंबे समय तक मिल जाएगा के साथ ...)
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;
}
}
और की तरह मेरे उपकरण परिभाषित:
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);
}
मैं की सवारी प्राप्त करना चाहते हैं (बढ़ रहा है) स्विच स्टेटमेंट, ऐसा लगता है कि 'गलत' है।
hypothetically, eval यह कर सकता है ... –
@ Šime Vidas, लेकिन व्यावहारिक रूप से, eval हर हालत में बचा जाना चाहिए: डी –
@Gabi, मैं मानता हूँ कि 'eval()' नहीं सही समाधान यहाँ है, लेकिन मैं मैं उत्सुक हूं कि आप क्यों कहते हैं कि "सभी लागतों पर eval से बचा जाना चाहिए"। यह उचित (और अनुचित) उपयोगों के साथ भाषा की एक गैर-बहिष्कृत विशेषता है - बस हर दूसरी सुविधा की तरह। – Lee