首页 >web前端 >js教程 >当 ES6 类本身不支持类变量时,如何管理类变量?

当 ES6 类本身不支持类变量时,如何管理类变量?

Barbara Streisand
Barbara Streisand原创
2024-11-15 12:46:02579浏览

How do you manage class variables in ES6 classes when they are not natively supported?

ES6 中的类变量替代方案

在 ES5 中,开发人员经常使用舒适的模式来创建类和类变量,如下所示code:

// ES 5
FrameWork.Class({

    variable: 'string',
    variable2: true,

    init: function(){

    },

    addItem: function(){

    }

});

但是,在 ES6 中,原生创建类并不包含拥有类的选项变量,如下所示:

// ES6
class MyClass {
    const MY_CONST = 'string'; // <-- this is not possible in ES6
    constructor(){
        this.MY_CONST;
    }
}

这是因为ES6类被限制只能包含方法。虽然可以在构造函数中设置 this.myVar,但不要让构造函数变得混乱,尤其是对于大型类。

已经考虑了几种方法来解决此问题,包括:

  • 创建 ClassConfig 处理程序: 将参数对象传递给处理程序,该处理程序与类分开声明。然后处理程序将附加到该类。 WeakMaps 可能会为此目的进行集成。
  • 第 3 阶段提案: 该提案允许使用语法 varName = value 在类声明/表达式主体中声明变量。预计将来会过时。
  • 设置构造函数变量:虽然不是一个完美的解决方案,但 constructor(){ this.foo = bar } 可以用于设置实例变量。
  • ES7 属性初始值设定项: ES7 的新提案允许使用类声明和表达式。

以上是当 ES6 类本身不支持类变量时,如何管理类变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

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