javascript - Javascript 中的等号和大于号 (=>) 是什么意思?

标签 javascript syntax

<分区>

在 Meteor Whatsapp 示例项目中,文件中使用了“=>”,但我的 WebStorm IDE 将其检测为错误。我找不到有关此语法的任何文档。

chats.forEach( chat => {
  let message = Messages.findOne({ chatId: { $exists: false } });
  chat.lastMessage = message;
  let chatId = Chats.insert(chat);
  Messages.update(message._id, { $set: { chatId: chatId } })
});

GitHub repository for bootstrap.js file is here

什么是“=>”?

最佳答案

我本来打算对这个问题投反对票,但事实证明,如果您还不知道它叫什么,谷歌搜索答案会出乎意料地困难。正如您在评论中的链接中看到的那样,这是一个粗箭头函数(有时简称为箭头函数)。

有一些confusing箭头函数的各个方面,所以我会打一些亮点:

普通函数有一个 this 指针集,这取决于上下文:使用 new 调用的函数将其设置为新创建的对象,作为方法调用的函数将其绑定(bind)到调用方法的对象,否则绑定(bind)到 undefined 或全局对象(取决于“严格模式”pragma),当然可以用 Function.prototype 设置。绑定(bind)

但是箭头函数对运行时创建的 this 指针没有绑定(bind)(也不能通过 Function.prototype.bind 指定),这意味着它从词法上看就像任何其他 var 一样通过作用域链解析。 MDN 文章在这一点上充其量只是有点困惑(见上面的链接)。

此外,箭头函数有一个隐式返回,返回值将自动成为函数体中最后计算的表达式。

箭头函数没有参数伪数组。您可以改用 ES 6 剩余参数。

对于 arity 1 的函数,参数周围的括号可以省略。

关于javascript - Javascript 中的等号和大于号 (=>) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376028/

相关文章:

javascript - 阻止记住密码

javascript - 将函数传递给 this.props.children

string - 在 Excel 的 VBA 中,当字符串包含 '&' 时如何操作页眉/页脚

mysql - 为什么mysql会抛出语法错误

syntax - 液体警告 : Liquid syntax error: Expected end_of_string but found id in

javascript - 使用 jQuery 动态更改 CSS 值

javascript - 如何调整浏览器窗口的大小以使内部宽度为特定值

javascript - 我怎样才能得到ajax返回的 "Parse"数组?

javascript onclick 撇号引号问题

gradle - 如何在Gradle中配置插件属性