问题标签 [ecmascript-2016]

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 投票
1 回答
205 浏览

javascript - 子类化一个装饰的 JavaScript 类

我正在装饰一个类以为其构造函数提供参数,当我尝试对此类进行子类化时出现问题:

由于上下文传递给构造函数,上述方法不起作用null(至少我认为这是问题的根源)。与 Babel 一起使用时,出现以下错误:“对象原型可能只是一个对象或 null:未定义”

有没有办法既装饰父类又扩展子类?

0 投票
1 回答
274 浏览

express - Babel/ES6 扩展类方法未定义

目前我正在使用 Babel 在 ES6 中编写 Node.js 后端。不幸的是,我在扩展特定类时遇到了奇怪的行为。我在扩展类中定义的一些方法是未定义的。除非我使用 ES7 语法将它们绑定到一个属性。

这是给我这种奇怪行为的实际代码:

这实际上是Routerexpressjs库中扩展而来的。所以现在我只是好奇是否有人可以解释这种行为和/或是否有办法解决这个问题。

0 投票
2 回答
152288 浏览

javascript - 与 ES7 反应:未捕获的类型错误:无法读取未定义的属性“状态”

我收到此错误Uncaught TypeError: Cannot read property 'state' of undefined每当我在 AuthorForm 的输入框中键入任何内容时。我将 React 与 ES7 一起使用。

错误发生在 ManageAuthorPage 的 setAuthorState 函数的第 3 行。不管那行代码是什么,即使我在 setAuthorState 中放了一个 console.log(this.state.author),它也会在 console.log 处停止并指出错误。

在互联网上找不到其他人的类似问题。

这是ManageAuthorPage代码:

这是AuthorForm代码:

0 投票
2 回答
11267 浏览

reactjs - 创建基础组件然后在 React 中扩展它们是一种好习惯吗?

我只是在学习 React,我正在使用 ES7 语法编写组件。我的想法是创建一个基础组件,其中将包含一些我希望所有派生组件都具有的方法。例如,我想在没有 mixin 的情况下实现 valueLink,以便在我的所有组件中进行双向绑定。这是我的想法:

 

它工作得很好。但是,我无法找到有关此方法的太多信息。这与 valueLink 无关,这只是一个例子。这个想法是在基础组件中包含一些方法,然后扩展该组件,以便派生组件具有所有这些方法,就像通常的 OOP 方式一样。所以我只想知道这是否完全没问题,或者有一些我不知道的缺陷。谢谢。

0 投票
2 回答
82 浏览

javascript - 类方法可以在 ES 6 或 7 中声明为引用吗?

我试图从(我的上帝,看看我们走了多远!)掌握了这段代码。react-redux-universal-hot-example

无论如何..

他们将一个类的 2 个静态方法声明为对 2 个函数参数的引用。

关键是..这行得通...但是 ES6 或 ES7 都支持它吗?你可以实现一个类成员作为对你作为参数接收的东西的引用吗?

0 投票
10 回答
78270 浏览

javascript - Array.prototype.includes 与 Array.prototype.indexOf

除了提高可读性之外,还有什么优势includesindexOf?他们似乎和我一模一样。

这有什么区别

和这个?

0 投票
1 回答
5491 浏览

asynchronous - 如何在打字稿中使用异步/等待

我想http.get从我的方法中调用一个方法ThemeService并使其尽可能“同步”,以便在它Theme从调用中获取后它是连续的。我搜索了如何做到这一点,并偶然发现了asyncand await。我试图实现这一点,但它并不完全奏效。我console.log()在代码中放了一些,所以我可以看到什么是执行的,什么没有执行。“IN ASYNC FUNCTION”和“AFTER ASYNC”被执行,但不是在我调用之后/中的那些ThemeService

因为我对async/await打字稿中的功能不熟悉,所以我不知道我写的内容是否糟糕,或者我想要做的事情是否可行。

0 投票
6 回答
7052 浏览

javascript - 如何使用 Array.prototype.filter 过滤对象?

给定

arr我们可以使用Number构造函数过滤数组中的数字项

true[10]预期的结果数组?如果我们替换falsetruearr

使用Array.isArray

String

如果我们想过滤其中的项目arr是对象,在索引处47我们尝试

虽然我们更喜欢简单地调用arr.filter(Object),但我们可以传递一个函数调用;尝试不同的属性,Object以便我们最终找到可以用作函数或构造函数的属性或方法,以作为模式传递给以arr.filter(/* method, constructor, other approach */)返回匹配对象的过滤结果,甚至是输入中对象的属性名称或值大批。

我们开始,天真地,通过检查数组中的项目是否constructor具有name等于"Object"

虽然当我们向arr;添加一个对象时 例如;

c prototypeconstructor现在一样undefined。尽管我们确信这不会返回预期的结果

至少没有返回错误;让我们继续

返回预期的结果;虽然我们正在尝试使用

  1. 过滤数组Object{}对象;即使对象没有定义的原型或构造函数;可选地将JSON字符串转换"{"abc":123}"为对象;虽然我们还没有走到这一步;

  2. 将属性名称传递给用作属性名称或对象值的.filter(callback, this)模式;this或利用一种方法使用 filter.bind.call.apply其他方法从输入数组中过滤对象-不使用完整的

    .filter(function(prop, value) {})

    图案。我们如何将Object.hasOwnProperty()调用强制转换为类似于

    .filter(Object.hasOwnProperty, "abc")

?

提到.call,在搜索了一个类似的Question并找到.bindJS Array.prototype.filter onprototype方法之后。尽管不确定如何实现在过滤对象和具有上述特定属性的对象中描述的方法。.apply

请注意,问题也可以通过destructuring或其他方法解决es-6es-7与 相比,提供可比较甚至更严格的结果.filter()。也就是说,.filter()不使用

图案。返回对象;即Object, {}; 和按属性过滤的对象;按属性值过滤的对象。


问题:

  1. 如何在不使用匿名函数模式的情况下过滤Object传递给的数组中带有或不带有原型或构造函数的对象?Array.prototype.filter()callback

  2. Array.prototype.filter()如何在不使用匿名函数模式的情况下通过传递属性名称或值来过滤传递给的数组中的特定对象以匹配对象callback

0 投票
2 回答
22067 浏览

javascript - VSCode Linter ES6 ES7 Babel linter

如何使用 Visual Studio 代码根据 babel/ES7 stage-0 规则对 JavaScript 文件进行 lint?

我只需要 lint 代码。我已经有 webpack 转译 Js 文件。

0 投票
1 回答
1288 浏览

internet-explorer - Aurelia TypeScript 应用程序无法在 Internet Explorer 10 中运行

我们使用 aurelia 框架创建了单页应用程序。我们es7 decorators在 aurelia 应用程序中使用。该应用程序在 chrome 和 firefox 中运行良好,但在 IE 9,10 中无法运行。但它在 IE 11 中可以正常工作。

浏览器控制台显示错误"Unhandled promise rejectionError"

我们如何解决这个问题?