问题标签 [es6-class]

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 回答
2716 浏览

javascript - ECMAScript 6 类属性下划线前缀

我见过的类模式几乎是这样的:

console.log(new Foo('x', 'y', 'z'))执行输出:

console.log(JSON.stringify(new Foo('x', 'y', 'z')))执行输出:

这给了我下划线前缀的字段,而我的目标不是那个,我怎样才能让字段没有下划线前缀,但是,让 getter 和 setter 由instance.prop交互触发。

0 投票
2 回答
113 浏览

javascript - 使用 ES6 类,是否可以从静态方法返回该类的实例化?

我想在 JavaScript 中执行上述操作(尽管形式更复杂)。当我运行这段代码时,它目前运行良好,但我对在类中的函数返回该类的实例化版本感到奇怪。有什么理由不以这种方式构建我的代码吗?

静态方法的有效替代方法是:

使用其中任何一种都有哪些优点和缺点(如果有的话)?还有其他更好的方法来实现我不知道的这个目标吗?

0 投票
2 回答
2946 浏览

javascript - 未捕获的类型错误:无法在 React 类中读取 null 的属性“props”

我已经重构了一个组件,我不再使用React.createClass类方法,但我现在有这个错误

TypeError:无法读取未定义的属性“道具”

代码运行良好

重构之前

现在在重构之后

那么如何this在类构造函数中手动绑定呢?

0 投票
0 回答
33 浏览

javascript - 为什么需要在 ES6 JavaScript 的基本构造函数中创建对象?

JavaScript ES6 支持classconstructor如下所示。但它指定 newObject在基构造函数中创建,而不是进入派生类的构造函数。为什么这个要求是必要的?它可以在类中开始构造函数时创建Derived,然后传递给Base类进行初始化吗?

0 投票
0 回答
348 浏览

javascript - 从一个扩展两个 ES6 类

我打算从一个扩展两个 ES6 类,两个扩展类在 Angular 中用作控制器。

例如,

在上面的示例中,控制器 1 和控制器 2 被注册为角度控制器。这很好用,但是我注意到,基类被调用两次,每次访问每个控制器时。几个问题:

这种设计模式正确吗?如果是,如何防止基构造函数被调用两次?我想要实现的是在两个控制器之间共享一些方法。如果上述情况无效,那么实现这一目标的理想方法是什么?

0 投票
3 回答
2909 浏览

javascript - 什么是 es5 中的 ES6 方法(类)的等价物?

我们如何将 es6 类方法填充到 ES5 中?

我正在读一本书,上面写着:

是相同的

我只是问为什么我们在原型上而不是在构造函数中添加 swingSword?

因为函数应该在对象上,而不是在原型链上。

我是对还是错?

0 投票
3 回答
998 浏览

javascript - 有没有类似 Ruby 的 JavaScript 模块

假设我有一个 Ruby 类和一个 Ruby 模块

现在我可以做这样的事情

我可以在 JavaScript 中做同样的事情吗?我不能使用extends关键字,因为我的 JavaScript 类已经被继承。如何将一些功能混合到我的课程中?

更新

我想使用与 ES6 类一起使用的东西

0 投票
3 回答
3135 浏览

javascript - 如何在控制台中重新定义 JavaScript(不是 CSS)类?

我对 JS 类相当陌生,并且主要从事后端工作。

我正在玩新的 JS 类,所以我开始在这里查看示例:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

我去了 chrome (chromium) 开发者工具控制台,我写了 Polygon 类:

然后我想根据包含方法的示例重新定义类,所以我写道:

这会引发错误:Uncaught SyntaxError: Identifier 'Polygon' has already been declared(…)

现在我知道 ES6 中有一个新的作用域,并且类会自动使用新的作用域等等……但实际上,我该如何重新定义我的类?:D

我经常写 Python,所以我习惯于重新定义我想要的一切。

0 投票
1 回答
802 浏览

reactjs - 是否可以在其构造函数签名中安全地解构 ES6 React 组件类?

我有一个扩展的 ES6 类React.Component,即一个 React 组件。假设我的组件如下所示:

在这里,我在构造函数的签名中使用解构来提取一些我想在组件状态中使用的道具。我确保将这些值传递给 super。但是,当我实际执行类似的代码时,我会看到如下所示的警告:

警告:MyComponent(...):在调用 super() 时MyComponent,请确保传递与传递组件构造函数相同的道具。

所以我的问题是是否可以像我展示的那样在没有相关警告的情况下解构构造函数的签名?(我假设警告是有充分理由的,我同样确定我不完全理解其中的含义。)

0 投票
1 回答
1219 浏览

angular - 带有 Pace-Progress 库的 Angular2,错误:未定义缓冲区

Pace 库(Pace-Progress 是它在 NPM 上的名称,因为 Pace 已被采用)在导入时抛出此错误。我正在使用 Angular2 和 Webpack。引发错误的代码行是

我有一个 NPM 提供的缓冲区库很好,但为什么 Pace 会期望我提前加载另一个库以使其工作?我可能做错了什么?