这种写法是用了解构赋值吗?

const getFullName = ({ firstName, lastName }) => {
  return `${firstName} ${lastName}`;
}

getFullName({
  firstName: "si",
  lastName: "Li"
})

函数定义的参数和函数体里面的参数是简写的吗?完整的写法是什么样的呢?
({ firstName, lastName })
函数体使用对象参数不应该是obj.firstName之类的吗?

阅读 2.6k
5 个回答

是解构赋值,相当于从形参里解构出firstName, lastName。 { firstName, lastName }相当于形参

是的,去看下es6吧

用到了解构赋值以及模板字符串语法。

MDN 上对 JavaScript 的解构有详情说明,如果你不习惯看英文,可以在右上角 Language 处切换到中文版阅读。

其中在一半多一点的位置,讲到了对函数参数的解构

简单可以理解为,对函数参数赋值采用与对变量赋值同样的解构方式,比如定义并解构变量时

const [a, b, c] = someArray;
const { firstName, lastName } = userInfo;

相应的,定义和解析参数就可以

function fn1([a, b, c]) { ... }
// fn1(someArray)

function fn2({ firstName, lastName }) { ... }
// fn2(userInfo)

在普通解构赋值语句中可用的特性,也函数参数解析中也可用,比如默认值等。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题