如何解决从字符串动态实例化一个类
下午好,开发人员
我目前正在尝试开发一个函数,该函数根据它作为参数接收的字符串的值动态实例化业务对象。我知道这可以像以前一样在JavaScript中完成,并且可以肯定的是,在SAPUI5应用程序中遇到此问题后,我什至在Visual Studio Code中再次对其进行了测试。我函数的代码看起来像这样:
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
我想知道你们中的某些人以前是否曾尝试过类似的尝试,并且可能能够指出正确的方向。即使我有解决此问题的方法,但由于我打算在几种不同的情况下使用这种方法,所以我学会了如何动态地进行此操作也非常好。我期待着您的来信!
解决方法
从字符串中实例化对象,然后从用户可以提供的参数中实例化它,这是一种非常不安全的做法。如果对象有限,那么使用较大的switch语句会更安全。
switch(name) {
"objA": return new ObjA();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。