首页  >  文章  >  web前端  >  在 ES6 中立即实例化匿名类是一个坏主意吗?

在 ES6 中立即实例化匿名类是一个坏主意吗?

Susan Sarandon
Susan Sarandon原创
2024-10-20 11:18:02197浏览

Are Immediately Instantiated Anonymous Classes in ES6 a Bad Idea?

立即实例化匿名类:灾难的秘诀

在 ES6 中,定义匿名类的能力为类声明提供了语法糖。虽然很方便,但立即实例化此类类可能会导致大量问题。

幕后发生了什么?

当立即实例化匿名类时,JavaScript 会创建一个新的构造函数并动态原型对象。表达式的每次求值都会产生不同的构造函数和原型。

立即实例化的缺点

这种做法有几个明显的缺点:

缺乏可重用性:
与命名类不同,立即实例化的匿名类每次都会创建一个新的构造函数和原型。这意味着多个实例不会共享相同的原型,从而失去了类继承和原型共享的好处。

单例谬误:
如果使用此模式背后的意图是创建单例对象,它会失败。构造函数仍然可访问,允许使用新的entity.constructor创建多个实例。

不惜一切代价避免

共识很明确:应避免立即实例化匿名类。简单的对象字面量提供了一种更高效、更直接的替代方案:

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

警告:跨语言注意事项

虽然新的类模式在其他一些语言中是可以接受的,但它在 JavaScript 中的行为有所不同。 JavaScript 类创建的动态本质排除了这些语言所享有的优势。

以上是在 ES6 中立即实例化匿名类是一个坏主意吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn