问题标签 [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 回答
1163 浏览

javascript - 打字稿箭头运算符在原型上定义一个函数

如本所示,分配a和定义b导致不同的函数类型。

这导致以下js

但是,我对规范4.9.2 箭头函数表达式有点困惑

那么,有没有办法使用箭头运算符并在原型上定义一个函数。就像是,

0 投票
9 回答
124757 浏览

javascript - 我什么时候应该在 ECMAScript 6 中使用箭头函数?

我们得到了两种非常相似的方式来在 ES6 中编写函数() => {}function () {}在其他语言中,lambda 函数通常通过匿名来区分自己,但在 ECMAScript 中,任何函数都可以是匿名的。这两种类型中的每一种都有唯一的使用域(即this需要显式绑定或显式不绑定时)。在这些域之间,有大量的情况可以使用任何一种表示法。

ES6 中的箭头函数至少有两个限制:

  • 创建时不要使用new,也不能使用prototype
  • this在初始化时固定绑定到范围

除了这两个限制之外,箭头函数理论上几乎可以在任何地方取代常规函数。在实践中使用它们的正确方法是什么?是否应该使用箭头函数,例如:

  • “它们工作的所有地方”,即在任何地方,函数都不必对this变量不可知,而且我们不是在创建对象。
  • 只有“需要它们的任何地方”,即需要绑定到某个范围的事件监听器、超时
  • 具有“短”功能,但不具有“长”功能
  • 仅适用于不包含另一个箭头函数的函数

我正在寻找在未来版本的 ECMAScript 中选择适当函数表示法的指南。该指南需要清晰,以便可以教授给团队中的开发人员,并且要保持一致,这样就不需要不断地从一个函数符号到另一个函数符号来回重构。

这个问题是针对那些在即将到来的 ECMAScript 6 (Harmony) 的上下文中考虑过代码风格并且已经使用过该语言的人。

0 投票
4 回答
6149 浏览

typescript - Typescript:如何在子类中使用 super 关键字调用基类中用箭头函数定义的方法?

给定

我收到错误消息:

只有基类的公共方法可以通过“super”关键字访问。

@Basarat 在这里提供了一些信息,但这似乎是对该语言的真正破解。 打字稿箭头运算符在原型上定义一个函数

在保留“this”的上下文使用的同时如何做到这一点?

我是否正确使用箭头函数,或者它们真的应该只用作声明回调之类的方法?

0 投票
14 回答
332839 浏览

javascript - JavaScript 中的“=>”(由等于和大于组成的箭头)是什么意思?

我知道>=运算符的意思是大于或等于,但是我=>在一些源代码中看到过。那个运算符是什么意思?

这是代码:

0 投票
1 回答
104 浏览

javascript - 为什么返回这个 ECMAScript Harmony 箭头函数表达式会产生意外行为?

我一直在使用新的 ECMAScript 6 功能,这个问题与箭头函数有关。以下代码是分配给Function对象原型的简单功能组合方法。使用简单的匿名函数可以很好地工作,但使用箭头函数时就不行了。

http://jsfiddle.net/oegonbmn/

http://www.es6fiddle.com/hyo32b2p/

第一个25正确记录到控制台,而第二个记录功能(hello) { return hello + 10; }105并不能完全告诉我我做错了什么。

我没有返回箭头函数中的值,因为它应该隐式返回最后一个语句(本例中的第一个和最后一个),我认为手头的问题与词法范围和 this 的值有关, 也许。谁能解释一下?

0 投票
13 回答
24968 浏览

javascript - 如何在 ES6 中递归地编写箭头函数?

ES6 中的箭头函数没有arguments属性,因此arguments.callee即使只使用匿名函数,也不会在严格模式下工作。

箭头函数不能命名,因此不能使用命名函数表达式技巧。

那么......如何编写递归箭头函数?那是一个箭头函数,它根据某些条件递归调用自己,当然等等?

0 投票
1 回答
73 浏览

javascript - 箭头函数在 ECMAScript6 中是如何工作的

我正在研究数学程序并准备实现ECMAScript6 Arrow. Lambda这与中的表达式非常相似C#

我在使用Arrow函数后实现了我的目标,但仍然对函数的工作方式感到困惑Arrow

是否像这样工作Lambda表达一样工作。任何人都可以指导我。

谢谢

0 投票
1 回答
142 浏览

javascript - ECMA Script 6 箭头函数作为对象属性

我意识到这是一件毫无意义的事情,但我不明白为什么它不起作用。

“this”绑定到全局对象,而不是调用对象 getName。我期待上面的内容相当于:

(我知道你应该这样写)

0 投票
1 回答
115 浏览

javascript - 在类中使用 Ecmascript 6 箭头函数作为方法的正确方法是什么?

Ecmascript 6 箭头函数似乎非常适合用作类中的方法,因为它们不受与“this”引用混淆的调用上下文的影响。不过,我看不出如何以我期望的方式使用它们。以下是一个类,它显示了我可以看到的两种使用它们的方法:

say2 和 say3 都将使用新的 this 处理,并且应该能够将它们传递给单击处理程序和其他需要回调的函数,而不必担心在某些情况下会调用回调,这会导致“this”意外指向某些东西除了对象的适当实例。

尽管如此,say2 和 say3 都显得很尴尬。say2 在构造函数中定义,而 say3 实际上是箭头函数的包装器。我期待一些语法,它可以让我用类似的东西替换 say() 行

但据我所知,你不能做这样的事情。所以问题是,使用箭头函数作为方法是say2或say3的方法是合理的。有没有更好的办法?

0 投票
1 回答
69 浏览

javascript - 在变量中影响它,而不是在咖啡脚本中使用胖箭头

使用胖箭头(将函数绑定到 this 的当前值)和将 @ 的值放入变量有什么区别?

胖箭头

@建议使用粗箭头避免弄乱周围的范围。如何?