以下の2つの「require」ステートメントの違いを理解しようとしています。
具体的には、{ }
ラップアラウンドの目的は何ipcMain
ですか?
const electron = require('electron')
const {ipcMain} = require('electron')
どちらもelectron
モジュールの内容を割り当てているように見えますが、明らかに機能が異なります。
誰かが光を当てることができますか?
以下の2つの「require」ステートメントの違いを理解しようとしています。
具体的には、{ }
ラップアラウンドの目的は何ipcMain
ですか?
const electron = require('electron')
const {ipcMain} = require('electron')
どちらもelectron
モジュールの内容を割り当てているように見えますが、明らかに機能が異なります。
誰かが光を当てることができますか?
回答:
2番目の例では、破壊を使用しています。
これにより、必要なモジュールからエクスポートされた特定の変数(関数を含む)が呼び出されます。
例(functions.js):
module.exports = {
func1,
func2
}
ファイルに含まれています:
const { func1, func2 } = require('./functions')
今、あなたはそれらを個別に呼び出すことができます、
func1()
func2()
とは対照的に:
const Functions = require('./functions')
ドット表記を使用して呼び出されます。
Functions.func1()
Functions.func2()
お役に立てれば。
ここで破壊について読むことができます。これはES6の非常に便利な部分であり、オブジェクトだけでなく配列でも使用できます。
を使用する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