对象解构花括号内的等号

Muh*_*lah 3 javascript object-destructuring

我在 Graphql 指令定义中看到了这个语句:

const { resolve = defaultFieldResolver } = field;
Run Code Online (Sandbox Code Playgroud)

我知道这部分const { resolve } = field;意味着获取对象的resolve属性field并将其存储在局部变量中resolve。但我第一次遇到的是= defaultFieldResolver零件。等号在这里做什么?我已经进行了彻底的谷歌搜索,但也许我不知道要搜索的正确关键字,或者这可能是新的东西。

这是我看到这篇文章的链接。

谢谢一堆。

Twi*_*her 5

这意味着如果field包含一个resolve属性,提取它:

const defaultFieldResolver = 'defaultFieldResolver';

const field = { resolve: 'resolve' };

const { resolve = defaultFieldResolver } = field;

console.log(resolve);
Run Code Online (Sandbox Code Playgroud)

如果field不包含resolve属性,defaultFieldResolverresolve改为分配给变量。

const defaultFieldResolver = 'defaultFieldResolver';

const field = {};

const { resolve = defaultFieldResolver } = field;

console.log(resolve);
Run Code Online (Sandbox Code Playgroud)