• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

的Node.js – 创建变量

JavaScript 来源:Forseti 4次浏览

指定我有一个类层次结构像类名的对象:的Node.js – 创建变量

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

现在,我想实现的战略格局,并创建一个储存在String类的一个对象。在PHP中,我会使用:

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

Node.js中是否有等价物?


===========解决方案如下:

如果你希望有一个更强大和可测试的方式去,你可以使用类和工厂模式的组合来发布对象。看看下面的内容,你会发现,通过这种设置,包括更细粒度的逻辑和测试的方式将变得更加容易,并为您提供更大的灵活性。你也在抽象出.issue电话背后的新对象 – 这在某些情况下可能是有益和方便的。

我也注意到你提到你的PHP背景,所以我还展示了一些ES6中面向对象的方法。

class AbstractShape { 
    constructor(type) { 
    this.type = type; 
    } 

    getType() { 
    console.log(`I am a ${this.type}`); 
    } 
} 

class Square extends AbstractShape { 
    constructor(type) { 
    super(type); 
    this.sides = 4; 
    } 

    getDescription() { 
    console.log(`I have ${this.sides} equal sides`); 
    } 
} 

class ShapeFactory { 
    static issue(type) { 
    switch(type) { 
     case 'Square': return new Square(type); 
     break; 
     case 'Circle': /* same pattern with a Circle class */ 
     break; 
    } 
    } 
} 

let shape = ShapeFactory.issue('Square'); 

shape.getType();  /* I am a Square */ 
shape.getDescription(); /* I have 4 equal sides */ 

JSFiddle Link – 演示


此外,如果你想要的东西多一点故障不是处理例如冗余容错串'Square' – there are some creative ways可以利用枚举类方法来进一步优化。我将在这里保存房地产,而不是重新编码代码片段,但将包括一个小提琴让你检查。

JSFiddle Link – 枚举的方法演示


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)