Как electrojs require() возвращает разные объекты на основе значения L/имени переменной

В настоящее время я пачкаю руки на electrojs, и до этой попытки я не имел дело с модулями javascript.

В electrojs я могу сделать это в main.js (основной модуль):

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

Как может require('electron') возвращать три разных типа/класса объектов только на основе имени их имени переменной/значения L?

Где я могу найти дополнительную информацию о том, как работает эта функция?

Я пытался найти это поиском, но, думаю, я действительно плохо сформулировал свою проблему :)

Заранее спасибо всем!


person Nonlinearsound    schedule 25.10.2020    source источник


Ответы (1)


require возвращает все, что экспортируется, и это может быть объект.

Создание экземпляров переменных, как в const { app, BrowserWindow, ipcMain } = /* ... */, известно как деструктурирование объекта. Объект предоставляется с правой стороны = и деструктурируется таким образом, что создаются переменные с этими именами, а затем им присваиваются значения из соответствующих ключей в этом предоставленном объекте.

Например:

const { a, b } = { a: 'one', b: 'two', c: 'three' };

концептуально то же самое, что и:

const a = 'one';
const b = 'two';

Модуль, который вы require, экспортирует объект, а деструктуризация объекта извлекает запрошенные ключевые значения, присваивая их переменным с аналогичными именами. Объект может содержать больше ключей, но деструктуризация извлечет только те значения ключей, которые вы запрашиваете.

person Ouroborus    schedule 25.10.2020
comment
Большое спасибо за ответ! Вот и все! Также спасибо за предоставление основного механизма. Так что я могу пойти и немного больше изучить историю этой функциональности. - person Nonlinearsound; 26.10.2020