javascript - {app, BrowserWindow} 在 JavaScript (node.js) 中是什么意思?

标签 javascript node.js electron

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

const {app, BrowserWindow} = require('electron')

{app, BrowserWindow}(语法,不是关键字)到底是什么意思?它是 JavaScript 语法,还是 node.js 的东西,还是与 Electron 完全相关的东西?

最佳答案

这种语法称为“对象解构”,它是最新版本的 JavaScript(JavaScript2015 又名 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

希望对您有所帮助。

关于javascript - {app, BrowserWindow} 在 JavaScript (node.js) 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44732946/

相关文章:

node.js - MongoDB:用字典更新数组中的文档

node.js - 错误: Cannot find module\node_modules\sqlite3\lib\binding\electron-v8. 0-win32-x64\node_sqlite3.node'

javascript - 解绑后未提交表单

javascript - 如何使用 Braintree 在客户端显示客户的付款方式?

javascript - 在 node.js 上对具有低 RAM 的大文件进行排序

php - 从 PHP 向 Node.js(socket.io) 发送请求

javascript - 无法加载资源:net::ERR_FILE_NOT_FOUND Angular

node.js - 在 Electron 项目中找不到模块

javascript - 如何在javascript中重复一个函数?

javascript - 填充水平空间