前天,谷歌宣布他们将在V8 7.2和Chrome 72中引入公共类字段,并将很快发布私有类字段。这些新的类字段语法由Daniel Ehrenberg和Jeff Morrison在提交给ECMA TC39的提议中引入,该提议称为JavaScript的类字段声明,现在处于第3阶段。
根据该建议,预先声明字段将确保实例经历更少的状态转换,并且类定义将变得更加自文档化。
公共类字段(Public class fields)
公共类字段语法旨在简化类定义。这也将消除构造函数只需定义一些字段的需要。以下是根据以下语法实现类的方法:
class IncreasingCounter {
_count = 0;
get value() {
console.log(‘Getting the current value!’);
return this._count;
}
increment() {
this._count++;
}
}
私有类字段(Private class fields)
JavaScript中的字段使用_标记为私有。这使得该领域按惯例隐藏,但事实上,它是完全公开的。要使字段保密,我们可以用#标记它们,这意味着它们不能在类体外部访问。
class IncreasingCounter {
#count = 0;
get value() {
console.log(‘Getting the current value!’);
return this.#count;
}
increment() {
this.#count++;
}
}
虽然在JavaScript中,需要某种机制来提供封闭之外的私有或受控访问,但这个提议似乎非常草率,正如一些开发人员所认为的那样。有网友说,“这种语法很奇怪。它不具有表现力,而是作为一种“语言黑客”而出现的。唯一能够理解它的人就是碰巧偶然发现这篇文章的人。“
详细了解Google Developers,并查看GitHub上的提案。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-12/155868.htm