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

Posted

技术标签:

【中文标题】如何对新的 JS 功能提出建议?【英文标题】:How can I make a suggestion on a new JS Feature? 【发布时间】:2022-01-21 06:36:33 【问题描述】:

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

Javascript 也已经阻止子类查看或编辑信息。它还阻止使用 Object.entries、Object.keys 和 Object.values 读取这些值。所以我的问题是如何报告这一点,或者如何帮助在较新版本的 Javascript 中实现。

我知道你们中的很多人可能都认为不应该在浏览器中内嵌敏感信息,但是为什么要首先使用私有类功能。

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

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

对象可见

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.

【问题讨论】:

私有类字段,就像其他面向对象语言中的私有字段一样,旨在帮助您减少错误并编写更好的代码。它们用于存储敏感信息或控制对数据的访问。 【参考方案1】:

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

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

在Encapsulation查看更多信息。

JavaScript,但是没有私有字段。 JS 开发人员通常会使用前导 _ 来表示某个变量或方法仅供内部使用。但是,它并不限制对它的访问。

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

【讨论】:

以上是关于如何对新的 JS 功能提出建议?的主要内容,如果未能解决你的问题,请参考以下文章

一份关于Angular的倡议清单

如何使用JS将图像制作成具有透明背景的轮廓

HMC与VIOS对新LPAR提供存储与网络虚拟化的支持

如何使用保存的文本分类模型对新的文本数据集进行预测

问题驱动

如何使用训练有素的 Keras CNN 模型对新的未标记数据进行预测