Node.js 'require' 语句中的大括号(大括号)
Curly brackets (braces) in Node.js 'require' statement
我试图理解下面两个 'require' 语句之间的区别。
具体来说,环绕 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()
希望对您有所帮助。
您可以阅读解构 here,它是 ES6 中非常有用的部分,可以与数组和对象一起使用。
有了 const electron = require('electron')
,ipcMain
模块将作为 electron.ipcMain
使用。
有了 const {ipcMain} = require('electron')
,ipcMain
模块将可用 ipcMain
。
此构造称为 object destructuring 并实现与 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
另请参阅:What does curly brackets in the var { … } = …
statements do?
我试图理解下面两个 'require' 语句之间的区别。
具体来说,环绕 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()
希望对您有所帮助。
您可以阅读解构 here,它是 ES6 中非常有用的部分,可以与数组和对象一起使用。
有了 const electron = require('electron')
,ipcMain
模块将作为 electron.ipcMain
使用。
有了 const {ipcMain} = require('electron')
,ipcMain
模块将可用 ipcMain
。
此构造称为 object destructuring 并实现与 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
另请参阅:What does curly brackets in the var { … } = …
statements do?