Javascript动态选择构造函数,这是不正确的吗?
Javascript selecting constructor dynamically, is this incorrect?
我正在尝试根据声明的类型动态创建对象。这段代码似乎工作,但我觉得我可能会设置自己为一个壮观的失败进一步的线路。
我想问题是——这是好的代码吗?如果不是,为什么不是?
//TypeA and TypeB are constuctor functions declared elsewhere which take data objects, omitted here for clarity.
var constructorMapping = { 'typeA': TypeA, 'typeB': TypeB };
function convertToObject( type, dataObject) {
var selectedConstructor = constructorMapping[type];
if ( !selectedConstructor ) {
return false;
}
return new selectedConstructor(dataObject);
}
var typeAObject = convertToObject("typeA", {name: "asdf"});
看起来不错,假设所有的TypeA
/TypeB
/…构造函数都将这些dataObject
s作为它们的参数。
然而,我不会返回false
。抛出错误,或者返回null
。同样,您只检查selectedConstructor
是否为真,如果需要,您可以使检查更严格:
function convertToObject(type, dataObject) {
if (!constructorMapping.hasOwnProperty(type)) return null;
var selectedConstructor = constructorMapping[type];
if (typeof selectedConstructor != "function") return null;
return new selectedConstructor(dataObject);
}
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 你能解释一下为什么这个javascript不正确吗
- 从int值来看,Javascript日期不正确
- jQuery-迭代不正确?(太长,无法执行)
- 字符串解析不正确
- 日历显示不正确
- 引导程序下拉列表显示不正确
- Node.js:多个然后'It’执行顺序不正确
- Highcharts热图显示不正确
- 动态模式下的 lightGallery:单击时加载的图像不正确
- 如何阻止用户动态输入格式不正确的日期?
- Javascript动态选择构造函数,这是不正确的吗?
- Algolia地理搜索与动态经纬度-距离不正确
- 动态html对齐在Chrome中不正确,但在IE和FF中运行良好
- 元素img上的src属性值不正确:对于动态生成的img src,必须是非空的