为什么 => { } 中的代码需要返回,而 => 中的内容不需要
Why is that code inside => { } needs a return and the content inside => doesn't?
我对 Ecmascript 6 比较陌生。最近,我有了一个发现。我可以转动这个获取函数:
store.fetchList = () => {
const Document = Parse.Object.extend('Document')
const query = new Parse.Query(Document)
return query.find().then((results) => {
return _.map(results, (result) => {
return result.toJSON()
})
})
}
进入这个(如果去掉大括号,只需要第一次返回):
store.fetchList = () => {
const Document = Parse.Object.extend('Document')
const query = new Parse.Query(Document)
return query.find().then((results) =>
_.map(results, (result) =>
result.toJSON()
)
)
}
这是为什么呢?Ecmascript 5 版本是什么?
如果箭头函数只有一个表达式,则
-
无需创建函数体
-
默认情况下返回该表达式的值。
JavaScript版本是什么?
ECMAScript 6 是 JavaScript。如果你的意思是要求 ECMAScript 5 等价物,那么这个没有等价物。
<小时 />如果有多个表达式,则
-
我们需要将它们包含在
{
和}
中,基本上我们需要创建一个块(函数体)。 -
我们需要显式返回值。
如果我们查看箭头函数的 ES 6 规范,我们会在本节中找到语法
ArrowFunction[In, Yield] : ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] ConciseBody[In] : [lookahead ≠ { ] AssignmentExpression[?In] { FunctionBody }
正如我们在这里看到的,您可以使用{ FunctionBody }
形式,也可以使用AssignmentExpression
形式(您没有{
和}
)。但是,如果使用FunctionBody
窗体,则需要显式返回值。
请注意,两者
(result) => {
return result.toJSON()
}
和
(result) =>
result.toJSON()
将写成:
(function(result) {
return result.toJSON();
}).bind(this)
在 ES5 中。
相关文章:
- 在刚刚调用的append函数之后,jquery.height()不会返回实际值
- 如何在不需要单击按钮的情况下获取选项的值
- Javascript不需要的关闭行为
- Google 加号登录不会返回id_token
- Ajax正确发布表单,但不会返回成功数据
- 返回并重新加载页面时显示不需要的服务器端警报消息
- find()方法返回具有不需要的属性的对象
- 元素在通过单击链接隐藏后重新出现(需要不包含返回 false 或 preventDefault 的解决方案)
- Javascript split() Regex 表达式在 Chrome 中返回不需要的逗号
- 为什么 => { } 中的代码需要返回,而 => 中的内容不需要
- text在迭代JavaScript XML中返回不需要的空文本值的内容
- 当定义一个函数时,为什么我需要返回一个函数而不是直接返回我想要的值?
- 为什么$http.Get不需要返回任何东西
- js返回不需要的值
- ScriptBundle+Optimization返回不需要的数字
- 不理解为什么需要返回语句
- RegEx返回SyntaxError:无效正则表达式:/*/:不需要重复
- 用多个正则表达式模式拆分字符串会返回不需要的值
- 如何从一个页面返回到前一个页面,而不需要使用jquery或ajax单击任何按钮
- Javascript计算排列——为什么当我不复制数组时,我的代码返回不需要的解决方案?