[javascript] Node.js ‘require’문의 중괄호 (중괄호)

아래 두 ‘필수’진술의 차이점을 이해하려고합니다.

특히, { }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')ipcMainipcMain

이 구조는 객체 비 구조화라고 하며 파이썬 구조와 동일합니다.

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

참조 : 명령문 에서 중괄호의 기능은 무엇입니까 var { … } = …?


답변