匿名类实例----这是一个坏主意吗?

史蒂夫·范(Steve Fan)

在ES6中,我们可以执行匿名类:

var entity = class {
}

但是我们也可以实例化它:

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');
console.log(entity.getName()); // Foo

它背后的工作是什么,它将带来什么优势以及它也会带来什么警告?

贝吉

匿名类实例-这是一个坏主意吗?

是的,非常糟糕。就像在ES5中一样糟糕new function() { … }

每次评估表达式时,这种书写风格都会导致创建新的构造函数和原型对象。如果使用这种方法创建多个对象,则它们将不会获得类/原型的任何好处。

如果您打算使用此模式来创建单例对象,那么您也会失败。构造函数仍然可以创建,甚至可以访问-使用可以轻松创建第二个实例new entity.constructor,从而破坏了整个目的。

所以永远不要使用它一个简单的对象文字更容易编写,读取和实例化:

var entity = {
    name: 'Foo',
    getName() { return this.name; }
};
console.log(entity.name); // Foo

不要被new class模式通用的其他语言所迷惑,它在那里的工作方式与JavaScript完全不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缓存NSMangagedObject实例是一个坏主意吗?

来自分类Dev

特征访问类依赖是一个坏主意吗?

来自分类Dev

类库中的SignalR集线器?这是一个好主意还是一个坏主意?

来自分类Dev

将django基类包装到中间类中是一个坏主意吗?

来自分类Dev

在单例类中使用Future是一个坏主意吗?

来自分类Dev

合并从同一个类继承的两个表是一个坏主意吗?

来自分类Dev

重复实例化一个匿名类是浪费吗?

来自分类Dev

将实例传递给__init__。这是一个好主意吗?

来自分类Dev

组合实例VBO是一个好主意吗?

来自分类Dev

组合实例VBO是一个好主意吗?

来自分类Dev

如何在另一个生成字节码类中使用匿名类实例

来自分类Dev

为什么这是个坏主意(是吗?)

来自分类Dev

为什么在一个类的不同方法中为循环控制变量使用相同的字段是一个坏主意?

来自分类Dev

包装System.Math是一个坏主意吗?

来自分类Dev

使/ etc目录只读只是一个坏主意吗?

来自分类Dev

给用户sudo访问perl是一个坏主意吗?

来自分类Dev

包装System.Math是一个坏主意吗?

来自分类Dev

React:将子组件作为this.child存储在父构造函数中-这是一个坏主意吗?

来自分类Dev

在这种情况下,使用“数据类”是个坏主意吗?

来自分类Dev

在python中的函数内部定义本地类是个坏主意吗?

来自分类Dev

将类实现保留在其接口的静态字段中是个坏主意吗?

来自分类Dev

Scala:是一个类实例吗?

来自分类Dev

将所有帮助程序类合并到一个巨大的类中是一个好主意吗?

来自分类Dev

为文本标签创建CSS类不是一个好主意吗?

来自分类Dev

在C中创建一个通用的“函数指针”联合是一个坏主意吗?

来自分类Dev

有一个包含外键的复合主键是一个坏主意吗?

来自分类Dev

包含实例的匿名类

来自分类Dev

包含实例的匿名类

来自分类Dev

别名cd推送-这是一个好主意吗?

Related 相关文章

  1. 1

    缓存NSMangagedObject实例是一个坏主意吗?

  2. 2

    特征访问类依赖是一个坏主意吗?

  3. 3

    类库中的SignalR集线器?这是一个好主意还是一个坏主意?

  4. 4

    将django基类包装到中间类中是一个坏主意吗?

  5. 5

    在单例类中使用Future是一个坏主意吗?

  6. 6

    合并从同一个类继承的两个表是一个坏主意吗?

  7. 7

    重复实例化一个匿名类是浪费吗?

  8. 8

    将实例传递给__init__。这是一个好主意吗?

  9. 9

    组合实例VBO是一个好主意吗?

  10. 10

    组合实例VBO是一个好主意吗?

  11. 11

    如何在另一个生成字节码类中使用匿名类实例

  12. 12

    为什么这是个坏主意(是吗?)

  13. 13

    为什么在一个类的不同方法中为循环控制变量使用相同的字段是一个坏主意?

  14. 14

    包装System.Math是一个坏主意吗?

  15. 15

    使/ etc目录只读只是一个坏主意吗?

  16. 16

    给用户sudo访问perl是一个坏主意吗?

  17. 17

    包装System.Math是一个坏主意吗?

  18. 18

    React:将子组件作为this.child存储在父构造函数中-这是一个坏主意吗?

  19. 19

    在这种情况下,使用“数据类”是个坏主意吗?

  20. 20

    在python中的函数内部定义本地类是个坏主意吗?

  21. 21

    将类实现保留在其接口的静态字段中是个坏主意吗?

  22. 22

    Scala:是一个类实例吗?

  23. 23

    将所有帮助程序类合并到一个巨大的类中是一个好主意吗?

  24. 24

    为文本标签创建CSS类不是一个好主意吗?

  25. 25

    在C中创建一个通用的“函数指针”联合是一个坏主意吗?

  26. 26

    有一个包含外键的复合主键是一个坏主意吗?

  27. 27

    包含实例的匿名类

  28. 28

    包含实例的匿名类

  29. 29

    别名cd推送-这是一个好主意吗?

热门标签

归档