我如何就新的 JS 功能提出建议?

How can I make a suggestion on a new JS Feature?

我最近了解了一项新的 Javascript 功能(私有实例字段),它允许您在使用 ES6 class 时将某些 object 属性或方法设为私有。因此您无法使用 object.property 或 object 属性 = 值查看或设置它们。但是,如果您只是将 object 本身记录到控制台,它将向您显示所有属性,包括所谓的私有字段。

Javascript 也已经阻止 child classes 查看或编辑信息。它还阻止使用 Object.entries、Object.keys 和 Object.values 读取这些值。所以我的问题是我如何报告这个或可能帮助实施 Javascript.

的新版本

我知道你们中的很多人可能认为您不应该在浏览器中内联包含敏感信息,但为什么首先要有私有 class 功能。

我个人可以想到您可能希望隐藏可能在幕后处理的信息的情况。就像你解密或某种需要时间在后端处理的算法一样,所以你只需要 运行 它一次。但是,您需要为多个功能返回的信息,因此您想将其存储在客户端。同时,尽管您不希望客户端能够看到该信息。

示例:信息在控制台中是可读的。编辑:(您可能需要将代码片段复制并粘贴到单独的 js 文件或 运行 浏览器中才能看到问题。)

Object 可见

class Account { 
    #pin;
    constructor(owner, pin) {
    this.owner = owner;
    this.#pin = pin;
    }};
    const acc = new Account('John Doe', 1234);
    console.log(acc); //Shows you pin in object.

属性 虽然是私有的

class Account { 
    #pin;
    constructor(owner, pin) {
    this.owner = owner;
    this.#pin = pin;
    }};
    const acc = new Account('John Doe', 1234);
    console.log(acc.#pin); //Won't allow you to see pin.

私有方法和属性用于隐藏敏感数据。

它用于对使用它的开发人员隐藏某些属性或方法。这对于隐藏内部变量和方法以防止被覆盖或读取很有用。

Encapsulation 查看更多信息。

JavaScript,但是没有私有字段。 JS 开发者会习惯性地使用前导 _ 来表示某个变量或方法仅供内部使用。但是,它不限制对其的访问。

新的 # 是一个访问修饰符(类似于 java 中的 private),它在语法级别实现私有字段,而不是引导 _ 的解决方法.