아래 두 ‘필수’진술의 차이점을 이해하려고합니다.
특히, { }
s 의 목적은 무엇 ipcMain
입니까?
const electron = require('electron')
const {ipcMain} = require('electron')
둘 다 electron
모듈 의 내용을 할당하는 것처럼 보이지만 분명히 다르게 작동합니다.
누구든지 빛을 비출 수 있습니까?
답변
두 번째 예에서는 구조 분해를 사용합니다.
이것은 필수 모듈에서 내 보낸 특정 변수 (함수 포함)를 호출합니다.
예 (functions.js) :
module.exports = {
func1,
func2
}
파일에 포함되어 있습니다.
const { func1, func2 } = require('./functions')
이제 개별적으로 호출 할 수 있습니다.
func1()
func2()
반대로 :
const Functions = require('./functions')
점 표기법을 사용하여 호출됩니다.
Functions.func1()
Functions.func2()
도움이 되었기를 바랍니다.
여기서 destructuring에 대해 읽을 수 있습니다. ES6의 매우 유용한 부분이며 객체뿐만 아니라 배열에도 사용할 수 있습니다.
답변
를 사용 const electron = require('electron')
하면 ipcMain
모듈을 electron.ipcMain
.
로 모듈로 사용할 수 있습니다 .const {ipcMain} = require('electron')
ipcMain
ipcMain
이 구조는 객체 비 구조화라고 하며 파이썬 구조와 동일합니다.
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