この構文は、「オブジェクトの非構造」と呼ばれ、それには、JavaScriptの最新バージョンの機能です(JavaScript2015別名はECMAScript 6/ES6) - app
とBroswerWindow
は、あなたがこの部分に使用したいelectron
のちょうど特定の部分がありますあなたのアプリケーションの。
これは、コードを単純化し、依存関係の重要な部分を簡単に参照する方法です。ここで
は、だからあなたの場合には、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
から非常に基本的な例です:
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
を参照することはできませんでした。
希望します。私はちょうど(OPが便利です何非構造不思議ので)あなたの問題の文はと等価であることを、指摘したい
[オブジェクトの構造の割り当て](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring) - 新しい「javascript」(換言すれば、ES2015 +) –
基本的には書くだけで短くする。 'const eletron = require( 'electron');の代わりに' electron.app'を使うと 'app'と入力するだけです。 2つのインポートされたモジュールが同じプロパティをエクスポートできるので、私はこのタイプの構造を個人的に避けます。あなたはできません。 'const {utils} = require( 'module1'); const {utils} = require( 'module2'); ' – Danosaure