2016-07-29 7 views
25

Ich versuche, den Unterschied zwischen den beiden erforderlichen Anweisungen unten zu verstehen.Lockige Klammern im Knoten erfordern Anweisung

Spezifisch, was ist der Zweck der { } s gewickelt um ipcMain?

const electron = require('electron') 

const {ipcMain} = require('electron') 

Beide scheinen den Inhalt des Elektronenmoduls zuzuordnen, aber sie funktionieren offensichtlich anders.

Kann jemand etwas Licht abwerfen?

Antwort

35

Das zweite Beispiel verwendet Destrukturierung.

Dies ruft die spezifische Variable (einschließlich Funktionen) auf, die aus dem erforderlichen Modul exportiert wird.

Zum Beispiel (functions.js):

module.exports = { 
    func1, 
    func2 
} 

wird in der Datei enthalten:

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

Nun, sie rufen Sie individuell, können

func1() 
func2() 

im Gegensatz:

const Functions = require('./functions') 

werden mit Punktnotation genannt:

Functions.func1() 
Functions.func2() 

Hoffnung, das hilft.

Sie können über Destrukturierung here lesen, es ist ein sehr nützlicher Teil von ES6 und kann mit Arrays sowie Objekte verwendet werden.

+1

Große Erklärung, danke. – Shaffanhoon

+1

Ich war gerade dabei, Sie zu bitten, einen Link zum weiteren Lesen zur Verfügung zu stellen, aber Sie haben mich dazu geschlagen! – Shaffanhoon

+1

Kein Problem, froh zu helfen. – alexi2

Verwandte Themen