箭头函数后面带()的意思是什么? [复制]

2024-04-13

const actionsMap = {
  [GET_USER]: (state, action) => ({ post: action.msg })
};

我有这个我偶然发现的代码。我一直在使用 {} 格式的箭头函数,这个 () 包装器是什么意思?


对于箭头函数,您可以使用单个语句或块作为函数体。这两个是等价的:

() => foo
() => {
  return foo;
}

在您的示例中,如果 lambda 定义为() => {post: action.msg}物体 ({}) 将被解释为主体块而不是对象。运行时会尝试将其解析为等效于:

function () {
  post: action.msg
}

这是一个命名标签和属性访问,在这里没有多大意义。通过用括号括起来,您向解析器暗示它是一个要计算的表达式,并且单表达式主体上的粗箭头函数规则启动,使其等效于:

function () {
  return {post: action.msg};
}

当您想要做两个相关的事情时(在映射/归约算法中偶尔有用),要解决单表达式规则,您可以使用括号对一对表达式进行分组:

foo.reduce((p, c) => (c.counted = true, p += c.value));

这将设置counted的财产c, 在添加之前c.value to p并返回结果p += c.value作为新值p.

ECMAScript 中的括号将表达式括起来,并且可以与逗号运算符一起使用来对多个表达式进行分组。计算组时返回最后一个表达式的结果。

例如:

var i = 0, j = 0;
console.log((j += 10, i += 2), j);

将打印2 10, since j是递增的()组并稍后打印。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

箭头函数后面带()的意思是什么? [复制] 的相关文章

随机推荐

  • 重定向 stdio 时 Linux BASH 内存泄漏

    我有内存泄漏某处 但它似乎与我的程序无关 我做出这个大胆的声明是基于这样一个事实 一旦我的程序终止 无论是通过正常方式 段错误还是中止 内存都不会恢复 如果我的程序是罪魁祸首 我会认为 MMU 会恢复所有内容 但情况似乎并非如此 仅当我将
  • 如何在javascript中编写json文件

    好的 我正在使用 js 编写一个 Web 操作系统 我使用 JSON 作为文件系统 我已经在网上寻找有关 JSON 内容的教程大约一周了 但我找不到任何有关从网页编写 JSON 文件的内容 我需要在文件中创建新对象 而不是更改现有对象 到目
  • 缺少 mingwm10.dll

    我正在使用 Qt Creator 编写一个 C 项目 一切工作正常 调试 发布 但是当我直接运行编译后的 exe 转到 exe 文件并运行它 时 它说 mingwm10 dll 丢失 对于这个问题我能做什么 您可以执行以下操作 as cha
  • 本地主机上使用 DotNetOpenAuth 的 OpenID 提供程序

    我在本地运行 DotNetOpenAuth 示例提供程序 它似乎可以通过 Web 浏览器正确处理请求 我可以在调试器中单步执行授权处理程序 我有一个项目可以通过 Google 和其他提供商进行身份验证 但无法通过示例提供商进行身份验证 示例
  • 使用 VBA 将唯一编号添加到 Excel 数据表

    我有两列数字 它们在一起将是唯一的 复合键 我想创建一个唯一的 ID 号 第三列 类似于 MS Access 使用主键的方式 我想在 VBA 中执行此操作 但我不知道如何执行此操作 我的 Excel 中的 VBA 不太好 所以希望您能看到我
  • iOS NSBlock的NSMethodSignature(或编码)

    我需要一种方法来在运行时检查给定块的参数数量和参数类型 我当前正在编写的某些对象映射库需要这个 我将字符串格式的值映射到选择器 希望块也如此 我尝试了下面示例中的代码 但由于某种原因它对我不起作用并且返回 nil 字符串描述 你知道一种在运
  • 如何在 Ubuntu 中注册文件关联

    我正在创建 Ubuntu 安装程序 我需要注册自己的文件扩展名 但我找不到任何有关如何执行此操作的示例 人们可以为我提供一些关于如何执行此操作的脚本片段吗 注意 我正在使用安装干扰器 http www installjammer com 帮
  • 带有heredocs的Python子进程

    我正在使用 Python 的子进程模块 尝试了一些示例 但我似乎无法让 Heredoc 语句发挥作用 这是我正在玩的一个简单的例子 import subprocess a A String of Text p subprocess Pope
  • 转换回原始类时出现 ClassCastException 错误

    我有以下代码 public void doJob MyObj s for Object o MyObj all fetch s MyObj o ClassCastException here if s fileExists Do some
  • 在 x86-64 上,“movnti”指令是原子指令吗?

    在 x86 64 CPU Intel 或 AMD 上 将 4 8 字节写入 32 64 位对齐地址的 movnti 指令是原子的吗 Yes movnti在自然对齐的地址上是原子的 就像 x86 上所有其他自然对齐的 8 16 32 64b
  • 在您自己的应用程序中直观地包含另一个应用程序

    我有四个用 Delphi Win32 编写的小型单一形式实用程序应用程序 每隔一段时间我就想以一种让它们 感觉 起来好像它们都是一个应用程序的方式使用它们 主要是为了切换回来他们之间的来回非常容易 例如 如果能够将它们作为容器插入 TabS
  • npm 错误 semver 无效

    刚刚从源代码安装了 Node js v 0 10 20 目标盒 Ubuntu 12 04 3 LTS 节点安装正常 没有错误 毕竟看起来 node v v0 10 20 npm v 1 3 11 但只是列出我的 g 模块 我收到一些我无法弄
  • 如何使用 Graph API 从 Facebook 评论字段获取

    我使用 comment id 获取 from 字段并使用页面访问令牌 comment id fields from access token PAGE ACCESS TOKEN 但我没有得到所需的输出 我只得到评论 ID id commen
  • 如何在 IE7 中将绝对定位的 div 居中?

    更新了布局的提供上下文 I have a relatively simple structure for my page The page is composed of two div s both absolutely positione
  • 使用 pathlib 模块关闭文件的推荐方法?

    从历史上看 我总是使用以下内容来读取文件python with open file r as f for line in f do thing to line 这仍然是推荐的方法吗 使用以下内容是否有任何缺点 from pathlib im
  • 在C语言中,我可以通过堆栈指针访问另一个函数中主函数的局部变量吗?

    我需要访问在 main 函数中定义的变量 a 的值 而不将其作为参数传递 main int a 10 func printf d n a void func i need access of variable a here 我怎样才能做到这
  • jQuery 选择列表选项通过另一个元素 onchange 事件更改后触发事件

    我有一个选择列表 select2 每次更改另一个选择列表 select1 时 其选项都会更改 select2 的选项始终取决于 select1 的值 并且每次 select1 更改时都会更改 是否有一个函数可以绑定到 select2 元素
  • 如何在局域网上部署PHP应用程序? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是一名网页设计师和 PHP 开发人员 我用 PHP 创建了一些网站 并将它们部署到来自不同供应商 如 GoDaddy Yahoo M
  • java.lang.IllegalArgumentException - 对话框.dismiss

    我在发布的应用程序中收到此错误 只有客户端收到此错误 我已经多次尝试复制同样的错误 但没有成功 我也已经尝试在所有有对话框的位置使用下面的代码 但也没有解决 if dialog isShowing dialog dismiss 错误报告 j
  • 箭头函数后面带()的意思是什么? [复制]

    这个问题在这里已经有答案了 const actionsMap GET USER state action gt post action msg 我有这个我偶然发现的代码 我一直在使用 格式的箭头函数 这个 包装器是什么意思 对于箭头函数 您