#javascript
Вопрос:
Может ли кто-нибудь объяснить разницу между
const {a={}}=b
и
let a={}
a=b
Он отлично работает const {a={}}=b
, но на втором возвращается только пустой объект.
Комментарии:
1. Прочитав деструкцию объектов, вы можете получить то, что ищете. И немного улучшите вопрос, это сбивает с толку.
Ответ №1:
В первом фрагменте кода используется деструктуризация. Он пытается вывести a
свойство из значения in b
. Если такого свойства не существует, a
по умолчанию используется пустой объект.
Более подробно
const {a={}}=b
это как
const a =
b.a === undefined
? {}
: b.a;
или
let a;
if (b.a === undefined) {
a = {};
} else {
a = b.a;
}
Ваш второй фрагмент
let a={}
a=b
это совершенно другое. Он создает один объект, затем отбрасывает его и присваивает a
тому, что b
содержит.