Фигурные скобки (фигурные скобки) в узле требуют оператора
Я пытаюсь понять разницу между двумя утверждениями ниже.
В частности, какова цель { }
с обернутыми вокруг ipcMain
?
const electron = require('electron')
const {ipcMain} = require('electron')
Они оба, кажется, назначают содержимое электронного модуля, но они, очевидно, функционируют по-разному.
Кто-нибудь может пролить свет?
1 ответ
Второй пример использует деструктуризацию.
Это вызовет конкретную переменную (включая функции), которая экспортируется из требуемого модуля.
Например (functions.js):
module.exports = {
func1,
func2
}
включен в ваш файл:
const { func1, func2 } = require('./functions')
Теперь вы можете позвонить им по отдельности,
func1()
func2()
в отличие от:
const Functions = require('./functions')
вызываются с использованием точечной нотации:
Functions.func1()
Functions.func2()
Надеюсь это поможет.
Вы можете прочитать о деструктурировании здесь, это очень полезная часть ES6 и может использоваться как с массивами, так и с объектами.
С 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 { … } = …
заявления делать?