J'essaie de comprendre la différence entre les deux nécessitent des déclarations ci-dessous.
Plus précisément, quel est le but de la { }
s enroulé autour de ipcMain
?
const electron = require('electron')
const {ipcMain} = require('electron')
Ils semblent tous deux attribuer le contenu du module électronique mais ils fonctionnent évidemment différemment.
Quelqu'un peut-il nous éclairer?
Le deuxième exemple utilise la déstructuration.
Ceci appellera la variable spécifique (y compris les fonctions) exportée du module requis.
Par exemple (functions.js):
module.exports = {
func1,
func2
}
est inclus dans votre dossier:
const { func1, func2 } = require('./functions')
Maintenant, vous pouvez les appeler individuellement,
func1()
func2()
par opposition à:
const Functions = require('./functions')
s'appellent en utilisant la notation de point:
Functions.func1()
Functions.func2()
J'espère que cela t'aides.
Vous pouvez en savoir plus sur la déstructuration ici , il s’agit d’une partie très utile de ES6 et peut être utilisé à la fois avec des tableaux et avec des objets.
Avec const electron = require('electron')
, le module ipcMain
sera disponible sous la forme electron.ipcMain
Avec const {ipcMain} = require('electron')
, le module ipcMain
sera disponible sous la forme ipcMain
Cette construction s'appelle la déstructuration de l'objet et obtient le même résultat que la Python
from library import ...
Dans sa forme de base, il vous permet de vous référer directement aux propriétés d’un objet
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)
Vérifier:
const {ipcMain} = require('electron')
const myElectron = require('electron')
const myipcMain = myElectron.ipcMain
console.log(myipcMain===ipcMain) // true
Vous pouvez utiliser l’affectation de déstructuration pour importer plusieurs propriétés d’un objet Javascript, par exemple:
const { app, BrowserWindow, ipcMain } = require('electron')
Si vous utilisez une propriété qui n'existe pas, elle sera définie sur undefined
et vous n'obtiendrez pas d'erreur.
const {app, BrowserWindow, ipcMain, doesntExist} = require('electron')
console.log(doesntExist) // undefined
Voir aussi: Que font les accolades dans les déclarations var { … } = …
?