web-dev-qa-db-fra.com

Les accolades dans le noeud exigent une déclaration

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?

72
Shaffanhoon

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.

105
alexi2

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 { … } = …?

6
user2314737