javascript - Node.js - 创建变量中指定类名的对象

标签 javascript node.js strategy-pattern

我有一个像这样的类层次结构:

               |-> Square
AbstractShape -+-> Circle
               |-> Triangle

现在,我想实现策略模式并创建一个存储在字符串中的类对象。在 PHP 中我会使用:

$type = 'Square';
$obj = new $type();

Node.js 中是否有等效项?

最佳答案

一个安全的方法是定义一个工厂对象:

function Square() {
}

// here other constructors for Circle and Triangle   

var factory = {
    "Square": Square,
    "Circle": Circle,
    "Triangle" : Triangle   
}

var typeName;

// here some code which sets typeName

var typeObj = new factory[typeName]();

关于javascript - Node.js - 创建变量中指定类名的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47866797/

相关文章:

javascript - 尽管点击了模态框仍保持打开状态

javascript - Nodejs Promise 无法解析/没有返回数据

javascript - 将更改事件添加/委托(delegate)/绑定(bind)到 Chosen 插件?

javascript - setTimeout 不起作用

node.js - 如何在 NodeJS 中使用 ASC 文件和用户名/密码通过 SFTP 上传文件

design-patterns - 模板方法和策略模式有什么区别?

design-patterns - 重构帮助-策略模式

java - 策略设计模式中获取对象的类名

javascript - 标签未显示在 d3 旭日图上

Node.js、XMPP Strope.js