Знак равенства внутри объекта деструктурирование фигурных скобок

#javascript #object-destructuring

Вопрос:

Я видел это утверждение в определении директивы Graphql:

 const { resolve = defaultFieldResolver } = field;
 

Я знаю, что эта часть const { resolve } = field; означает получение resolve свойства field объекта и сохранение его в локальной переменной resolve . Но то, с чем я сталкиваюсь впервые, — это = defaultFieldResolver часть. Что здесь делает знак равенства? Я провел тщательный поиск в Google, но, возможно, я не знаю правильного ключевого слова для поиска, или это, вероятно, что-то новое.

Вот ссылка на статью, где я это видел.

Премного благодарен.

Комментарии:

1. Он предоставляет значение по умолчанию, если field у него нет resolve свойства.

Ответ №1:

Это означает, что если field содержит resolve свойство, извлеките его:

 const defaultFieldResolver = 'defaultFieldResolver';

const field = { resolve: 'resolve' };

const { resolve = defaultFieldResolver } = field;

console.log(resolve); 

Если field не содержит resolve свойства, назначьте defaultFieldResolver resolve его переменной вместо этого.

 const defaultFieldResolver = 'defaultFieldResolver';

const field = {};

const { resolve = defaultFieldResolver } = field;

console.log(resolve);