在解析器中,如果我编写为:
,则使用lodash方法“ find”user: (_, { _id }) => find(users, _id ),
我得到空值,而本不该得到,结果是我必须再次破坏:
user: (_, { _id }) => find(users, { _id }),
这是为什么?我以为破坏会发生一次,然后将命名参数传递给函数,如何理解它?
答案 0 :(得分:1)
后者不是destructuring,而只是object initialization的简写语法。
此
find(users, { _id })
等同于
find(users, { _id: _id })
它更加简洁。在这两种情况下,您都将创建一个具有名为_id
的属性的对象,并将该属性的值设置为现有变量,该变量也恰好名为_id
。如果属性名称和变量名称匹配,则可以使用简写语法。