在阅读使用electron制作软件的文档时,我在index.js文件(通常开始执行的文件)的开头遇到了这种类型的代码。

const {app, BrowserWindow} = require('electron')
{app, BrowserWindow}(语法,而不是关键字)的真正含义是什么?它是JavaScript语法,还是node.js或与 Electron 完全相关的东西?

最佳答案

此语法称为“对象解构”,它是最新版本的JavaScript(JavaScript2015 aka ECMAScript 6/ES6)的功能-appBrowserWindow只是要在应用程序此部分中使用的electron的特定部分。

这是一种简化代码并轻松引用依赖项关键部分的方法。

这是https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment的一个非常基本的示例

var o = {p: 42, q: true};
var {p, q} = o;

console.log(p); // 42
console.log(q); // true

因此,在您的情况下,electron是一个导入的模块,看起来像(再次,此处过于简化):
var electron = {
    app: {
        greet: () => {
            console.log("Hello, world!")
        }
    },
    BrowserWindow: {/* some other stuff */},
    anotherMethod: {/* other stuff, which we will ignore in your app */}
}

module.exports electron

然后在您的应用程序中,导入此模块,然后可以直接引用导入的属性:
const {app, BrowserWindow} = require('electron')

app.greet()
// "Hello, world!"

同样,您可以引用BrowserWindow ...但是,如果不将anotherMethod包括在解构分配中,则无法引用。

希望对您有所帮助。

10-04 22:38