爱德华多·马托斯(Eduardo Matos)
我想从箭头函数返回一个对象,但是下面的代码正在返回undefined
。我意识到花括号被解释为函数主体的开始/结束。令我着迷的是为什么a: 1
没有抛出错误。
const foo = () => {a: 1};
foo();
// > undefined
阿德里亚尼6
问题是解析器看到一个名为“ a”的标签,该标签属于表达式语句“ 1”。由于根本没有return语句,因此返回的值始终是未定义的。
如果将主体包裹在'()'中,则会看到返回的对象,请参见下文。
const foo = () => ({a: 1});
console.log(foo());
编辑:通过添加括号,您将强制解析器将对象文字视为表达式,以便不将其视为阻塞语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句