Фигурные скобки (фигурные скобки) в узле требуют оператора

Я пытаюсь понять разницу между двумя утверждениями ниже.

В частности, какова цель{ }с обернутыми вокругipcMain?

const electron = require('electron')

const {ipcMain} = require('electron')

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

Кто-нибудь может пролить свет?

Ответы на вопрос(2)

Сconst electron = require('electron') ipcMain модуль будет доступен какelectron.ipcMain

Сconst {ipcMain} = require('electron') ipcMain модуль будет доступен какipcMain

Эта конструкция называетсяразрушение объекта и достигает того же, что и конструкция Python

from library import ...

В своей основной форме он позволяет напрямую ссылаться на свойства объекта

var o = {prop1: '1', prop2: 2}
var {prop1, prop2} = o
console.log(prop1) // '1' (same as o.prop1)
console.log(prop2) // 2 (same as o.prop2)

Проверьте:

const {ipcMain} = require('electron')
const myElectron = require('electron')
const myipcMain = myElectron.ipcMain
console.log(myipcMain===ipcMain) // true

Вы можете использовать назначение деструктурирования для импорта нескольких свойств объекта Javascript, например:

const { app, BrowserWindow, ipcMain } = require('electron')

Если вы используете свойство, которое не существует, оно будет установлено вundefined и вы не получите ошибку.

const {app, BrowserWindow, ipcMain, doesntExist} = require('electron')
console.log(doesntExist) // undefined

Смотрите также:Что делает фигурные скобки вvar { … } = … заявления делать?

Решение Вопроса

Второй пример использует деструктуризацию.

Это вызовет конкретную переменную (включая функции), которая экспортируется из требуемого модуля.

Например (functions.js):

module.exports = {
   func1,
   func2
}

включен в ваш файл:

const { func1, func2 } = require('./functions')

Теперь вы можете позвонить им по отдельности,

func1()
func2()

в отличие от:

const Functions = require('./functions')

вызываются с использованием точечной нотации:

Functions.func1()
Functions.func2()

Надеюсь это поможет.

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

 Dave Johnson12 янв. 2017 г., 05:45
Согласитесь, что это четкое и фантастическое объяснение. Помог мне сегодня вечером. Спасибо!
 alexi229 июл. 2016 г., 15:44
Нет проблем, рад помочь.

Ваш ответ на вопрос