问题标签 [class-fields]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
11036 浏览

javascript - Eslint 不允许静态类属性

我目前正在 Node 12.14.1 上开发 API,并使用 Eslint 帮助我编写代码。不幸的是,它不允许我设置静态类属性,如下所示:

给出以下错误:Parsing error: Unexpected token =eslint

JS 和 Node.js 已经支持静态类属性。
如何禁用此规则?

我还有以下.eslintrc.json文件:

0 投票
1 回答
106 浏览

javascript - 如何让 acornjs 正确地检查私有类字段和方法的样式?

我正在做一个项目,我需要对我的代码使用样式检查。我想使用 acorn js,但是在尝试解析私有类字段和类方法时失败。

我试过了:

但是运行时会失败。这是错误消息:

我需要能够使用私有类字段和方法,但我不知道如何让 acorn 正确解析它。

0 投票
4 回答
425 浏览

javascript - js动态访问私有字段(属性/成员)

我正在尝试新的类私有成员功能 但是,我很快遇到了一个问题:如何动态访问它们?

我希望它遵循任何一个预先存在的语法

或者

但是,以上两种方法都失败了。

0 投票
2 回答
1011 浏览

javascript - 从派生(ES2019 私有类)访问基类的受保护字段

我想从派生类访问基类的私有字段而不将它们公开(在其他语言中称为“受保护”)。

考虑以下类:

现在扩展类:

我想像受到保护一样执行:

但是得到(分别):

  1. 未捕获的语法错误:必须在封闭类中声明私有字段“#privateProp”
  2. 未捕获的 SyntaxError:意外的私有字段

请注意,当 privateProp 公开时,此代码将完美运行,但我想实现类似受保护的行为并像任何支持继承的语言一样访问“私有”字段。

任何帮助将不胜感激。

0 投票
2 回答
100 浏览

javascript - 如何通过 JavaScript 中的方括号访问私有字段

此代码有效:

但是,如果我想计算字段名称,我必须使用方括号,但它不起作用:

有没有办法获得具有计算名称的私有字段?

0 投票
1 回答
180 浏览

javascript - 为什么箭头函数作为静态成员值没有词法范围?

我希望这段代码返回undefined,因为箭头函数是词法范围的,因此this必须急切地绑定到外部范围。

然而,它回来了123

为什么会发生这种情况?

是的,我知道它仍然是第 3 阶段,但仍然 - 为什么提议的标准会这样?(有关另一个示例,请参见https://babeljs.io/docs/en/babel-plugin-transform-class-properties。)

0 投票
1 回答
44 浏览

javascript - 有没有办法从 javascript 类声明中反映公共实例类字段?

ecmascript 候选规范允许声明类字段,例如:

或者像赋值一样:

MDN 上的公共实例字段规范

有没有办法以类似的方式反映类声明中声明的字段名称(和分配的值)列表?:

0 投票
1 回答
63 浏览

java - 使用参数初始化类字段的不同方法

还有哪些其他方法可以根据给定的 List 对象初始化类字段“fieldList”?一种方法是参数化构造函数。

0 投票
1 回答
62 浏览

javascript - 如何为测试初始化​​一个类的私有属性

我正在尝试使用 JEST 为我编写的具有类似于以下静态属性的类编写测试:

现在,我想为我的initializeData方法做一个新的实现,返回一些模拟数据而不是去数据库,然后“getData”看看我是否得到了预期的结果。问题是我的#data 属性是私有的,我不想将它暴露给外界。有什么办法吗?

0 投票
1 回答
71 浏览

c# - 甚至在调用静态构造函数之前,是否会初始化类的静态成员?

我正在阅读MSDN 文档,似乎存在矛盾。

在第一次访问静态成员之前以及在调用静态构造函数(如果有的话)之前初始化静态成员。

也在下一段左右,

如果您的类包含静态字段,请提供在加载类时初始化它们的静态构造函数。

如果静态构造函数的目的是初始化类的静态成员,那么它为什么说静态成员甚至在调用静态构造函数之前就已经初始化?

是不是像我这样写:

这是否意味着年龄首先被初始化为 10,然后该值被覆盖为 20?