Подтвердить что ты не робот

В чем разница между константой и константой {} в javascript

Когда я изучаю электрон, я нашел два способа получить объект BrowserWindow.

const {BrowserWindow} = require('electron')

и

const electron = require('electron')
const BrowserWindow = electron.BrowserWindow

В чем разница между const и const {} в javascript, и я не могу понять, почему "const {}" может работать. Я пропустил что-то важное о JS?

4b9b3361

Ответ 1

Две части кода эквивалентны, но первая использует назначение деструкции ES6, чтобы быть короче.

Вот краткий пример того, как он работает:

const obj = {
  name: "Fred",
  age: 42,
  id: 1
}

//simple destructuring
const { name } = obj;
console.log("name", name);

//assigning multiple variables at one time
const { age, id } = obj;
console.log("age", age);
console.log("id", id);

//using different names for the properties
const { name: personName } = obj;
console.log("personName", personName);

Ответ 2

Это одна из новых функций ES6. Нотация фигурных фигурных скобок является частью так называемого destructing assignment. Это означает, что вам больше не нужно получать объект и назначать переменные для каждого свойства, которое вы хотите на отдельных строках, вы можете сделать что-то вроде:

const obj = {
  prop1: 1,
  prop2: 2
}

// previously you would need to do something like this:
const firstProp = obj.prop1;
const secondProp = obj.prop2;
console.log(firstProp, secondProp);
// etc.

// however now you can do this on the same line:
const {prop1, prop2} = obj;
console.log(prop1, prop2);

Ответ 3

const {BrowserWindow} = require('electron')

В синтаксисе используется ES6.If у вас есть объект, определяемый как: -

const obj={
    email: "[email protected]",
    title: "Hello world"
}

Теперь, если мы хотим назначить или использовать поле электронной почты и заголовка obj, нам не нужно писать весь синтаксис, например

const email = obj.email;
const title = obj.title;

Сейчас это старая школа.

Мы можем использовать разрушающее назначение ES6, т.е. если наш объект содержит 20 полей в объекте obj, тогда нам просто нужно написать имена тех полей, которые мы хотим использовать следующим образом: -

const { email,title } = obj;

Это синтаксис ES6 - более простой Он автоматически назначит электронную почту и заголовок из obj, просто имя должно быть правильно указано для требуемого поля.