Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从字符串动态实例化一个类

从字符串动态实例化一个类
EN

Stack Overflow用户
提问于 2020-08-13 15:55:13
回答 1查看 46关注 0票数 0

下午好,开发者朋友们,

我目前正在尝试开发一个函数,该函数基于作为参数接收的字符串的值动态实例化业务对象。我知道这可以在JavaScript中完成,就像我以前做过的一样,为了确认一下,在我的SAPUI5应用程序中遇到这个问题后,我甚至在Visual Studio Code中再次测试了它。我的函数代码看起来有点像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        createObject: function (sObject) {
    
    var newObject = new this[sObject]();
    // var newObject = new [sObject](); I also tried this way.
    
    };

为了测试这个函数,sObject字符串当前包含硬编码值"Order“,并且我将Order.js对象导入到我试图动态实例化该对象的文件中。无论我怎么尝试,在调试我的代码时,我总是得到这个错误:

TypeError: this[sObject] is not a constructor

我想知道你们中是否有人以前尝试过类似的东西,也许可以给我指出正确的方向。即使我有办法解决这个问题,但如果我学会如何动态地做到这一点,那就太好了,因为我正计划在几个不同的场景中使用这种方法。我期待着从你那里读到!

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 16:47:42

从字符串实例化对象是一种非常不安全的做法,而从用户可以提供的参数实例化对象则是一种残暴的做法。如果你有一个有限的对象集,使用一个大的switch语句要安全得多。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch(name) {
   "objA": return new ObjA();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63398847

复制
相关文章

相似问题

Scala -从字符串动态实例化类

23

从另一个类动态实例化类

12

动态实例化一个类

20

从字符串动态实例化类的Groovy方法

20

动态类实例化

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文