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

javascript - 胖箭重复?

当我写咖啡脚本时,我倾向于这样做(伪代码):

真的没有办法在 CoffeeScript 中进行透明绑定吗?我希望能够做到:

或其他东西,它将我的 this._clicked 方法直接绑定到事件,并保留它的 this 指针

有任何想法吗?

更新

_clicked 将被定义为:

0 投票
1 回答
1010 浏览

javascript - 在 javascript 类中混合箭头函数有什么缺点吗?

如果您不熟悉 EMCA6 草案,将添加箭头函数语法。主要区别在于:

  • 箭头函数具有词法 this (因此无需调用Function.prototype.bind或创建闭包)
  • 更短的语法() => "foo"vsfunction(){ return "foo";}
  • 箭头函数缺少 .prototype。所以它们不能用作构造函数,不能用 new 调用,并且是轻量级的。

话虽如此,让我们看一下以下简单的示例:

在这里,我正在创建一个简单的类,它恰好使用箭头函数作为其方法之一,而不是普通函数。我知道这是在Animal.prototype.makeNoise我们每次初始化 Animal 时设置的,但与正常情况相比,上述设置是否有任何其他缺点:

我很想知道这样做是否有任何潜在的危险,因为我相信人们会很想在他们可以逃脱的任何地方使用新的缩短语法。提前致谢。

0 投票
1 回答
75 浏览

coffeescript - 胖箭头不工作咖啡?

我在咖啡脚本类构造函数中有这段代码:

使用类中的这三个方法:

我得到了:

当我删除项目但不是在更新时:似乎@currentConnection 在 update() 中正确定义,但在 dropConnection() 中没有正确定义。

为什么?我不明白怎么了?

0 投票
1 回答
10043 浏览

javascript - SyntaxError:无效的箭头函数参数(箭头函数周围的括号可能会有所帮助)

这样的代码会产生错误:

错误:

SyntaxError:无效的箭头函数参数(箭头函数周围的括号可能会有所帮助)

这是什么意思,是怎么发生的?谷歌搜索这个错误是非常无用的。

编辑:

似乎是由于使用=>而不是>=. 但我仍然很好奇为什么错误是这样表述的,箭头函数应该是什么。

编辑 2。

首先,我没有意识到这实际上可能是浏览器特定的问题。另外,我没有意识到现在人们在浏览器上下文之外的其他地方使用 JS。所以,为了清楚起见,我的浏览器是 Mozilla Firefox 25.0.1。

0 投票
2 回答
5339 浏览

typescript - 对类方法使用粗箭头语法时,我可以使用 TypeScript 重载吗?

我已经从传统形式转换了一些类:

改为使用箭头函数表达式:

以避免在回调中使用类方法时出现范围问题(请参阅此处了解背景信息)。

我不知道如何重新创建我的重载函数签名。使用胖箭头时如何编写重载?

0 投票
2 回答
4538 浏览

visual-studio-2012 - 来自 Typescript jsdoc 的 Visual Studio 智能感知不适用于粗箭头函数

打字稿智能感知适用于此:

然而,切换到使用胖箭头似乎破坏了 jsdoc 智能感知(方法签名仍然出现,但没有任何 jsdoc 描述出现):

我正在使用 Visual Studio 2012 Update 4;打字稿 0.9.5。

这是一个错误,还是我需要为 jsdoc 注释使用不同的语法?

0 投票
1 回答
2573 浏览

typescript - Typescript - 带参数的箭头函数

我是 Typescript 的新手,并试图将它介绍给我的一些东西,但我在使用一些范围和箭头函数时遇到了困难。

在javascript中,我的代码看起来像这样......

好的,所以这有两个问题。当我在 Typescript 中执行此操作时,我会这样做...

好的,所以这一直有效,直到标记的部分。this.model不再是对我认为的内容的引用,因为它是在函数的上下文中,而不是在“类”中。因此,我进行了一些挖掘并了解到我应该使用arrow function,因为这将保留上下文。

问题是,我无法想象如何在执行箭头函数的同时仍然传递我需要的参数,例如change绑定事件的值或function(e)部件。我只看到了根本不需要参数的示例。

0 投票
1 回答
1117 浏览

syntax - 如何在 CoffeeScript 胖箭头回调中引用实际的“this”?

标题说明了一切。当我在 CoffeeScript 中使用胖箭头时,它会this在调用函数之前先存储。例如:

会产生

现在在 JavaScript 的第 8 行,this.myMethod是错误的。在这个范围内,this指的是element而不是类MyClass

但是,如果在 CoffeeScript 的第 4 行,我用 JavaScript 中的第 8 行替换element.click ->element.click =>成为_this.myMethod(_this.val)在调用函数之前this存储引用 myClass的位置。_this但是_this.value是未定义的,即使它已定义,我在这里尝试访问的对象也是(由该函数范围内element的实际关键字引用)。this

现在如何访问实际this

0 投票
1 回答
5452 浏览

javascript - 为什么 Google Chrome 不支持这种 JavaScript 语法?

我像这样启动了一个 JavaScript/jQuery 点击监听器:

这段代码在 Firefox 中运行良好,但在 Chrome 中这似乎给了我一个语法错误。为什么会这样,因为这对我来说看起来像是“好的”语法。

您可以通过以下方式在控制台中快速测试

在 Firefox 27.0.1 中返回 0 在 Chrome 中返回SyntaxError: Unexpected token )

0 投票
3 回答
17407 浏览

javascript - 使用 JavaScript ES6 箭头函数的即时函数

有谁知道如何使用 ES6 箭头语法编写立即函数?

这是 ES3/5 的做法:

我尝试了以下方法,但unexpected token在最后一行出现错误。

你可以在这里测试:http: //www.es6fiddle.net/hsb8bgu4/