我希望能够通过将字符串变量传递给函数来实例化特定的 ES6 类。根据变量的值,将创建不同的类。
示例- 我有 2 个类,ClassOne
, ClassTwo
。我希望能够将变量传递给函数并返回一个新类。类的名称将与变量相关 - 例如。传递'Two'
将创建ClassTwo
.
我不希望只用一个switch
条款是这样的:
function createRelevantClass( desiredSubclassName )
{
let args = [],
newClass;
switch( desiredSubclassName )
{
case 'One' :
newClass = new ClassOne(args);
break;
case 'Two' :
newClass = new ClassTwo(args);
break;
}
return newClass;
}
相反,我希望能够以某种方式使用变量名创建构造函数调用。那可能吗?
function createRelevantClass( desiredSubclassName )
{
// desiredSubclassName would be string 'One' or 'Two'
// how to use the 'new' operator or Reflect here to create the class based on the variable passed in
let newClass = ( *magic code to build constructor dynamically* );
return newClass;
}