问题标签 [arrow-functions]

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 投票
2 回答
3398 浏览

jquery - jQuery .on 事件处理程序和 ES2015 箭头函数

我正在将我的一个项目转换为使用 ES2015,但是当涉及到 jQuery 的 .on 事件处理程序时,我遇到了一个问题,自然与 'this' 关键字有关。

这是我的示例代码:

我不确定我应该如何重写上面代码中的第一行以使用 ES2015。

在函数 handlerEditBtnClick 中,我需要“this”作为类,但我还希望访问被单击的按钮。

我的尝试(上面代码中的第二行)没有让我访问被单击的按钮 DOM 元素——至少我无法想到访问它。

谢谢,

卢克

编辑 这是 handlerEditBtnClick() 函数:

你可以看到我需要'this'是两个不同的东西。我不完全确定如何从 handlerEditBtnClick 中调用 editItem 函数,而不是 this.editItem();

请注意,这些名称只是通用名称,以便于输入

0 投票
4 回答
89663 浏览

javascript - ES6 立即调用箭头函数

为什么这在 Node.js 控制台中有效(在 4.1.1 和 5.3.0 中测试),但在浏览器中不起作用(在 Chrome 中测试)?

此代码块应创建并调用一个匿名函数来记录Ok.

此外,虽然上述方法Node.js 中有效,但这不起作用:

也不是这个:

奇怪的是,当添加参数时,它实际上会SyntaxError在立即调用部分抛出 a。

0 投票
0 回答
30 浏览

javascript - array.map(arrow function) 与有返回值的函数不一样?

我正在学习 Javascript 中的箭头函数。对Mozilla 的 MDN 页面上给出的“更短的函数”示例或箭头函数的定义印象深刻。

根据页面/示例-

做同样的工作!和 a2 & a3 存储长度为的字符串数组a

因此,我主动比较了两者(a2a3),结果得到了错误的结果(控制权转到else子句)。

这是我的代码-

我将其作为控制台中的输出 -

输出

即使a2与 相同a3,为什么我得到一个伪造的答案?

0 投票
2 回答
20272 浏览

javascript - Access variables declared a component from a RxJS subscribe() function

I am able to use this.variable to access variables in any part of the component, except inside RxJS functions like subscribe() or catch().

In the example below, I want to print a message after running a process:

When I run doSomething(), I get undefined. This scenario can be solved using a local variable:

I suppose this is related to the this, however, why I can't access the this.message inside the subscribe()?

0 投票
1 回答
358 浏览

javascript - 对箭头函数es6的理解

我试图了解 es6 的新箭头函数语法以及它与我已经知道的内容的关系。

我的理解是箭头函数有

  • 无名
  • 无参数对象
  • 没有能力成为发电机
  • 词法 this

只要您不使用参数对象认为它是用于箭头并且不将箭头用作生成器,那么以下概念是否正确

我的主要问题是。我是否缺少有关箭头功能的基本知识?

0 投票
3 回答
2076 浏览

javascript - Reactjs Material-UI - 箭头函数上的意外标记

我正在尝试将material-ui组件合并到一个由react-rocket-boilerplate构建的项目中。

我收到此错误:

[23:55:11] gulp-notify: [编译错误] C:/react-rocket-boilerplate/app/js/components/Sidebar.js: 解析文件时出现意外令牌 (13:15):C:\react-火箭样板\app\js\components\Sidebar.js

注意:Sidebar.js 是 material-ui 文档站点上提供的第一个 leftNav 示例(“SIMPLE CONTROLLED LEFTNAV”)的精确副本,仅更改了组件名称。

这是 Sidebar.js:

这是有问题的行:

(13:15) 处的字符是紧跟在“handleToggle”之后的空格。

我可以改用这种语法:

...这解决了错误,但不允许我在被调用时访问“this”。

箭头函数在此上下文中使用时会编译:

我非常乐意提供任何可能有帮助的其他信息,请告诉我。

另外......这些不同的组件定义语法/格式是否有一个术语?

0 投票
1 回答
929 浏览

javascript - TS / JS箭头函数改变`this`的值?

使用 TypeScript v1.7.5,上下文this似乎变得混乱,或者可能没有正确转译。或者我错过了一些东西。箭头函数的内部this正在发生变化,当我期望它仍然this与函数外部相同时。我已经调试了这种情况,结果显示在下面的评论中。

来源 TS

生成的 JS (ES5)

我期待生成的 JS 将回调绑定如下:

我需要保留this回调内部的值,因此我在整个代码中使用箭头函数。但我很困惑为什么这似乎不能正常工作。

笔记

当且仅当我特别尝试this在箭头函数中使用时,TypeScript 会创建此解决方法:

好的,很好,但是使用绑定不是更好吗?这仍然不能解决我从箭头函数中调用函数的问题。这些函数调用将丢失 的上下文this,这不是适当的行为。

0 投票
2 回答
8922 浏览

javascript - How to run ES6 code with arrow functions in Safari?

For some reason, ES6 code that runs well in the current Chrome or Firefox cannot run in Safari - for example, arrow functions. As I know, Safari has ok support for ES6. Is there something that needs to be done?

Example:

Or if it is a full .html file:

Safari (I am using 9.0.3) keeps on giving SyntaxError: Unexpected token '>'

0 投票
1 回答
4956 浏览

javascript - JSDoc:箭头函数参数

我正在尝试使用 JSDoc(EcmaScript 2015,WebStorm 12 Build 144.3357.8)记录我的代码。

我有一个箭头函数,我想记录它的参数。这两个示例有效(我得到自动完成):

但是,例如,当我想在函数中记录箭头函数时forEach,自动完成不起作用(以下所有内容):

有没有人设法得到这项工作?

0 投票
1 回答
150 浏览

javascript - 如何命名箭头函数以使名称在 Chrome CPU 分析器中可用

这是如何在 ES2015 中编写命名箭头函数的变体?问题,尽管具体目标是以使其可用于 Chrome CPU 分析器的方式命名函数对象。

我尝试了以下方法:

但是,无论我做什么,CPU 分析器都将其显示为(anonymous function).

有趣的是,如果您抛出错误,堆栈跟踪会使用displayName属性。

错误堆栈