Dấu ngoặc nhọn (dấu ngoặc nhọn) trong câu lệnh Node.js 'request'


95

Tôi đang cố gắng hiểu sự khác biệt giữa hai câu lệnh 'request' bên dưới.

Cụ thể, mục đích của { }s quấn quanh là ipcMaingì?

const electron = require('electron')

const {ipcMain} = require('electron')

Cả hai đều xuất hiện để gán nội dung của electronmô-đun, nhưng rõ ràng là chúng hoạt động khác nhau.

Bất cứ ai có thể làm sáng tỏ một số?

Câu trả lời:


135

Ví dụ thứ hai sử dụng cấu trúc hủy.

Điều này sẽ gọi biến cụ thể (bao gồm các hàm) được xuất từ ​​mô-đun yêu cầu.

Ví dụ (functions.js):

module.exports = {
   func1,
   func2
}

được bao gồm trong tệp của bạn:

const { func1, func2 } = require('./functions')

Giờ đây, bạn có thể gọi chúng một cách riêng lẻ,

func1()
func2()

như trái ngược với:

const Functions = require('./functions')

được gọi bằng cách sử dụng ký hiệu dấu chấm:

Functions.func1()
Functions.func2()

Hi vọng điêu nay co ich.

Bạn có thể đọc về cấu trúc hủy ở đây , nó là một phần rất hữu ích của ES6 và có thể được sử dụng với các mảng cũng như các đối tượng.


19

Với const electron = require('electron'), ipcMainmô-đun sẽ có sẵn dưới dạng electron.ipcMain.

Với const {ipcMain} = require('electron')các ipcMainmô-đun sẽ có sẵn như ipcMain.

Cấu trúc này được gọi là cấu trúc hủy đối tượng và đạt được giống như cấu trúc Python

from library import ...

Ở dạng cơ bản, nó cho phép bạn tham khảo trực tiếp các thuộc tính của một đối tượng:

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)

Kiểm tra:

const {ipcMain} = require('electron')
const myElectron = require('electron')
const myipcMain = myElectron.ipcMain
console.log(myipcMain===ipcMain) // true

Bạn có thể sử dụng phép gán cấu trúc để nhập nhiều thuộc tính của một đối tượng JavaScript, ví dụ:

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

Nếu bạn sử dụng thuộc tính không tồn tại, thuộc tính này sẽ được đặt thành undefinedvà bạn sẽ không gặp lỗi.

const {app, BrowserWindow, ipcMain, doesntExist} = require('electron')
console.log(doesntExist) // undefined

Xem thêm: Dấu ngoặc nhọn trong var { … } = …câu lệnh có tác dụng gì?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.