Деструктурирование - это отличная функция, которая помогает вам очень легко извлекать свойства объекта или элементы из массива. Давайте разберем это на примерах
- в первом примере, поскольку у obj есть свойство с именем name, из которого мы можем извлечь егоэто
, поэтому, если у объекта есть опора, мы можем извлечь его.
let obj = {
name :'maged'
}
let {name} = obj ; // have this prop
let {fullName} = obj ; // don't have this prop
console.log(name) ; // maged
console.log(fullName) ; // undefined
- в этом примере мы возвращаем объект из функции, для которой для требуется функция в nodejs , которая возвращаетобъект экспорта
function require(module) {
return {
name : module ,
method1: '1' ,
method2 : '2'
}
}
let obj = require('url') ;
let {name,method1,method2} = obj ;
console.log(name) ; // url
console.log(method1) ; // 1
console.log(method2) ; // 2
Как вы можете видеть, мы легко извлекаем несколько свойств из возвращаемого объекта
в нашем третьемВ примере мы увидим, как мы можем извлечь prop для новой переменной с именем
let obj = {
a :'a' ,
b:'b'
}
let {a:first , b:second} = obj ;
console.log(first) ; // a
console.log(second) // b
console.log(a); // Uncaught ReferenceError: a is not defined
, как вы можете видеть, мы извлекаем свойства как новые имена переменных, и это здорово,
- Теперь в последнем примере мы увидим, какприсвойте значение переменной по умолчанию, если оно не существует в объекте, что хорошо для таких вещей, как свойства объекта по умолчанию при передаче в функцию,
let obj = {
fullName : 'Sniper'
}
let {fullName='super'} = obj ; // sniper from the obj
console.log(fullName) ;
let {name='maged'} = obj ; // maged because undefined in the obj
console.log(name) ;
Я надеюсь, что эти примеры каким-то образом помогут вам понять, как работает деструктура и как она работает
Примечание. Деструктура работает с массивами