MDN个(Empasis矿山):

还有一些额外的语法限制:

  • 类中声明的所有私有标识符必须是唯一的.命名空间在静态属性和实例属性之间共享.The only exception is when the two declarations define a getter-setter pair.
  • 私有标识符不能为#constructor.

如何解读这一加粗的声明?这是我对它的理解:

class MyClass {
  static #privateProperty = 10; 

  #privateProperty = 20; 

  get #privateProperty() {}
  set #privateProperty(value) {}
}

但是:

Uncaught SyntaxError: Identifier '#privateProperty' has already been declared

你能帮我解释这句话并用代码解释吗?

推荐答案

MDN文本意味着给定的私有属性名称#something在一个类中只能声明一次,要么声明为static属性,要么声明为实例属性.当打算通过getter和setter函数访问该属性时,名称可以(而且确实必须)出现两次:

  get #something() {
    return // whatever
  }
  set #something(value) {
    whatever(value);
  }

就是这样;这是一个非常简单的规则.直接声明getter和setter方法的方式意味着需要对同一属性进行看起来像a little bit的两个声明.您的代码会出现错误,因为您试图将#privateProperty用作static属性、实例属性和getter/setter对.选一个吧.

Javascript相关问答推荐

React redux状态未在React-Router库中呈现

如何让\w token 在此RegEx中表现得不贪婪?

如何在NightWatch.js测试中允许浏览器权限?

有Angular 的material .未应用收件箱中的价值变化

具有相同参数的JS类

D3多线图显示1线而不是3线

如何在Javascript中的控制台上以一行形式打印循环的结果

将本机导航路由react 到导航栏中未列出的屏幕?

在执行异步导入之前判断模块是否已导入()

如何从HTML对话框中检索单选项组的值?

这个值总是返回未定义的-Reaction

WhatsApp Cloud API上载问题:由于MIME类型不正确而导致接收&Quot;INVALID_REQUEST";错误

在Matter.js中添加从点A到另一个约束的约束

为什么JPG图像不能在VITE中导入以进行react ?

如何在我的Next.js项目中.blob()我的图像文件?

FireBase云函数-函数外部的ENV变量

Phaser3 preFX addGlow不支持zoom

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

$GTE的mongoose 问题

有角粘桌盒阴影