我试图理解下面两个“ require”语句之间的区别。
具体来说,{ }
s包装的目的是什么ipcMain
?
const electron = require('electron')
const {ipcMain} = require('electron')
它们似乎都分配了electron
模块的内容,但是它们的功能显然不同。
谁能阐明一些想法?
我试图理解下面两个“ require”语句之间的区别。
具体来说,{ }
s包装的目的是什么ipcMain
?
const electron = require('electron')
const {ipcMain} = require('electron')
它们似乎都分配了electron
模块的内容,但是它们的功能显然不同。
谁能阐明一些想法?
Answers:
第二个示例使用解构。
这将调用从所需模块导出的特定变量(包括函数)。
例如(functions.js):
module.exports = {
func1,
func2
}
包含在您的文件中:
const { func1, func2 } = require('./functions')
现在您可以分别给他们打电话了,
func1()
func2()
相对于:
const Functions = require('./functions')
用点表示法调用:
Functions.func1()
Functions.func2()
希望这可以帮助。
使用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