问题标签 [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 投票
5 回答
75523 浏览

javascript - 如何在 ES6 类中创建“公共静态字段”?

我正在制作一个 Javascript 类,我想要一个像 Java 一样的公共静态字段。这是相关代码:

这是我得到的错误:

看起来 ES6 模块不允许这样做。有没有办法获得所需的行为,还是我必须写一个吸气剂?

0 投票
4 回答
116968 浏览

javascript - 如何使用箭头函数(公共类字段)作为类方法?

我是使用 ES6 类和 React 的新手,以前我一直将我的方法绑定到当前对象(在第一个示例中显示),但是 ES6 是否允许我将类函数永久绑定到带有箭头的类实例?(在作为回调函数传递时很有用。)当我尝试像使用 CoffeeScript 一样使用它们时出现错误:

因此,如果我要传递SomeClass.handleInputChange到,例如setTimeout,它将被限定为类实例,而不是window对象。

0 投票
3 回答
23851 浏览

javascript - ES6 类:脚本中出现意外的标记?

我正在复制一个尝试学习 ES6 的示例,但出现编译错误:

它似乎是指 count = 0;

我究竟做错了什么?

0 投票
7 回答
33034 浏览

javascript - 如何配置 ESLint 以允许粗箭头类方法

Parsing error: Unexpected token =当我尝试 lint 我的 Es6 类时,ESLint 抛出错误。我缺少什么配置参数来启用 eslint 中的胖箭头类方法?

示例类:

.eslint

0 投票
2 回答
555 浏览

javascript - ES7 中的存根类字段函数

在我的测试套件中,我如何存根一个类的属性,它是一个函数*?使用普通方法很容易使用Object.getOwnPropertyNames(component.prototype)和猴子修补每个找到的方法,但经过长时间的努力,我还没有找到任何方法来提取通过分配给类的字段创建的函数。

我的测试堆栈由 Jest 和 Jasmine2 和 babel 组成。

转译的问题在于,箭头函数属性(当然,正如预期的那样)分配给输出转译“类”的实例(当然,实际上是函数)。所以除了实例化这个对象之外,我没有看到任何方法来存根它们,对吗?这是输入 es7 代码和 babel 输出的示例。但是我不是特别喜欢这个解决方案,看起来很hacky。这个解决方案的另一个缺点是我不能直接实例化组件的类。


(*) 这个问题的背景是单元测试用类似 es7 的类编写的 React 组件,为了自动绑定的目的,将箭头函数分配给类的属性。

0 投票
2 回答
17948 浏览

javascript - Declare a class property outside of a class method

See how x and y are declared in constructor:

is there an way to declare properties outside of functions for instance:

So I want to assign a to 22 but I am unsure if i can do it outside the constructor but still inside the class..

0 投票
3 回答
1914 浏览

javascript - 使用 React 时,在构造函数中使用粗箭头函数还是绑定函数更可取?

在创建 React 类时,哪个更可取?

或者

我的一个同事认为后者会导致内存问题,因为 babel 将代码转换为this在闭包内捕获,并且该引用将导致实例不被 GC 清理。

对此有什么想法吗?

0 投票
3 回答
15518 浏览

ecmascript-6 - Eslint - `解析错误:意外令牌=`分配的胖箭头/属性初始化程序错误

我正在使用箭头函数,它抱怨解析错误:

Parsing Error: Unexpected token =

但是我的代码是有效的(如果我弄错了请告诉我)。此外,我已将 .eslintrc 设置设置为使用 es6 解析:

.eslintrc

这是我的代码:

有办法解决这个错误吗?这在this特定功能的价值方面存在巨大差异。

0 投票
2 回答
6758 浏览

javascript - JS 类字段

对于 ES6 类,我们有 getter 和 setter 属性,但没有字段选项(或者至少我知道)。

使用Object.defineProperty,您可以使用value属性设置它们。如果有的话,你如何对课程做同样的事情?

我知道它可以在类构造函数中完成,但如果可能的话,我希望它是分开的。

0 投票
2 回答
6332 浏览

javascript - 为什么在基类构造函数中看不到派生类属性值?

我写了一些代码:

我期待我的派生类字段初始化程序在基类构造函数之前运行。myColor相反,派生类直到基类构造函数运行后才会更改属性,因此我观察到构造函数中的错误值。

这是一个错误吗?怎么了?为什么会这样?我应该怎么做?