簡體   English   中英

Node.js“require”語句中的大括號(大括號)

[英]Curly brackets (braces) in Node.js 'require' statement

我試圖理解下面兩個“要求”語句之間的區別。

具體來說,圍繞ipcMain{ }的目的是什么?

const electron = require('electron')

const {ipcMain} = require('electron')

它們似乎都分配了electron模塊的內容,但它們的功能顯然不同。

任何人都可以透露一些信息嗎?

第二個例子使用解構。

這將調用從所需模塊導出的特定變量(包括函數)。

例如(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 { … } = …語句中的大括號有什么作用?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM