CNode

箭头函数返回对象

问答
Wwaksana__legacy_543dded0de346cb1644300bc发布于10 年前最后回复10 年前5 回复11072 浏览0 收藏

当箭头函数里面只有一条语句的时候可以把函数的中括号去掉然后返回值就是这条语句的返回值,比如说

a => a + 1

那么问题来了,如果我返回一个对象字面量就会出问题

a => {a: a + 1}

不得不这么写

a => { return {a: a + 1}; }

这是不是很蛋疼。。

查看回复

回复 (5)

G
gjc9620#1·10 年前
a=>({a:1})
H
houfeng#2·10 年前
a=>{a:1}

没有错误,说明 a:1 是「合法」语句,a:1 视为合法的意义是什么?

S
SinalVee#3·10 年前
var x = a => {a: 1}
相当于
var x = function (a) {
	a: 1
}

var x = var x = a => ({a: 1})
相当于
var x = function (a) {
	return {a: 1}
}

大括号被解释为代码块

C
Chunlin-Li#5·10 年前
引用 SinalVee@houfeng a: 1是js里的标签语句 labelName: statement

@SinalVee @houfeng

果然是 LabelledStatement...

在 ES2015 的 13.13 小节.

参与回复
登录后即可参与回复。登录