ES6 类变量:缺失及其替代方案
在 ES6 中,原生类提供了一种更清晰的方式来定义基于对象的结构。然而,它们存在一个显着的局限性:缺乏类级别变量。 ES5 等框架中允许方便地声明类变量的传统模式在 ES6 中不再适用。
虽然可以使用类构造方法 (constructor()) 来分配实例变量,但它变得不切实际对于具有大量参数的类。这一挑战激发了解决该问题的各种方法:
1。 ClassConfig 处理程序和外部声明:
一项建议涉及创建一个接受参数对象的单独的 ClassConfig 处理程序。然后该对象将附加到该类。可以集成 WeakMaps 以在类和参数对象之间建立连接。
2. ES7 之前的提案:
对于使用 TypeScript 或 Babel 的用户,可以使用以下语法:
varName = value
这在类声明/表达式主体中定义了一个变量。
3。构造函数赋值:
前面提到,可以在构造函数中对变量进行赋值:
constructor() { this.foo = bar; }
4. ES7 及以后:
ES7 的一项新提案旨在通过类声明和表达式引入更简洁的实例变量声明。该提案目前正在完善中。
结论:
虽然 ES6 缺乏真正的类变量,但有几种替代方案可以满足这一需求。每种方法都有其自身的优点和缺点,最佳选择将取决于应用程序的具体要求。
以上是如何在 ES6 中实现类级变量?的详细内容。更多信息请关注PHP中文网其他相关文章!