来自字符串变量名的Javascript类[重复]

Posted

技术标签:

【中文标题】来自字符串变量名的Javascript类[重复]【英文标题】:Javascript class from string variable name [duplicate] 【发布时间】:2021-08-26 10:26:19 【问题描述】:

我有一个类名,想用它来动态创建一个类实例。我该怎么做?

class FieldText 
  constructor() 
    console.log('hello text field');
  


class FieldTextarea 
  constructor() 
    console.log('hello textarea field');
  


function callField(name) 
  new FieldText(); // Somehow use name variable instead to make it dynamic
  // new Field$name(); // Does not work


callField('text');

【问题讨论】:

将类放在一个对象中并引用它? globalThis.FieldTextarea = FieldTextarea 允许 globalThis['FieldTextarea'] const elements = Text: fieldText; Textarea: FieldTextarea ; 然后你可以做new elements[name] 这有帮助吗? ***.com/a/49060784/14032355 【参考方案1】:

class FieldText 
  constructor() 
    console.log('hello text field');
  


class FieldTextarea 
  constructor() 
    console.log('hello textarea field');
  


this.FieldText = FieldText;
this.FieldTextarea = FieldTextarea;

function callField(name) 
  return new this[`Field$name`];


callField('Text');

【讨论】:

以上是关于来自字符串变量名的Javascript类[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取与python中的对象对应的所有可能变量名的列表[重复]

您可以在 Java 中访问私有变量,而无需来自非内部类的类的 getter [重复]

如何在具有相同函数名的派生类中调用基类的函数[重复]

有没有办法在不重复变量名的情况下将命名参数传递给格式化宏?

Javascript - 使用字符串连接设置变量[重复]

通过forEach将变量插入正则表达式[重复]