2016-12-09 19 views
25

Khi tôi nghiên cứu electron, tôi đã tìm thấy 2 cách để nhận đối tượng BrowserWindow.sự khác biệt giữa const và const {} trong javascript

const {BrowserWindow} = require('electron') 

const electron = require('electron') 
const BrowserWindow = electron.BrowserWindow 

sự khác biệt giữa const và const {} trong javascript và tôi không thể hiểu tại sao các 'const {}' có thể work.Do tôi bỏ lỡ bất cứ điều gì quan trọng về JS là gì ?

Trả lời

36

Hai đoạn mã tương đương nhưng mã đầu tiên sử dụng ES6 destructuring assignment để ngắn hơn.

Dưới đây là một ví dụ nhanh về cách hoạt động:

const obj = { 
 
    name: "Fred", 
 
    age: 42, 
 
    id: 1 
 
} 
 

 
//simple destructuring 
 
const { name } = obj; 
 
console.log("name", name); 
 

 
//assigning multiple variables at one time 
 
const { age, id } = obj; 
 
console.log("age", age); 
 
console.log("id", id); 
 

 
//using different names for the properties 
 
const { name: personName } = obj; 
 
console.log("personName", personName);

2

Đây là một trong những tính năng mới trong ES6. Ký hiệu dấu ngoặc nhọn là một phần của cái gọi là destructing assignment. Điều này có nghĩa là bạn không còn phải để có được những đối tượng chính nó và gán biến cho mỗi thuộc tính bạn muốn trên dòng riêng biệt, bạn có thể làm điều gì đó như:

const obj = { 
 
    prop1: 1, 
 
    prop2: 2 
 
} 
 

 
// previously you would need to do something like this: 
 
const firstProp = obj.prop1; 
 
const secondProp = obj.prop2; 
 
console.log(firstProp, secondProp); 
 
// etc. 
 

 
// however now you can do this on the same line: 
 
const {prop1, prop2} = obj; 
 
console.log(prop1, prop2);

Như bạn đã thấy trong kết thúc các chức năng là như nhau - chỉ cần nhận được một tài sản từ một đối tượng.

Ngoài ra còn có hơn destructuring phân công - bạn có thể kiểm tra toàn bộ cú pháp trong MDN: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

2
const {BrowserWindow} = require('electron') 

Trên cú pháp sử dụng ES6.If bạn đã đối tượng được xác định như sau: -

const obj={ 
    email: "[email protected]", 
    title: "Hello world" 
} 

Bây giờ nếu chúng tôi muốn chỉ định hoặc sử dụng trường email và tiêu đề của obj thì chúng tôi không phải viết toàn bộ cú pháp như

const email = obj.email; 
const title = obj.title; 

Đây là trường học cũ bây giờ.

Chúng ta có thể sử dụng phân huỷ ES6 ví dụ, nếu đối tượng của chúng tôi bao gồm 20 lĩnh vực trong đối tượng obj thì chúng ta chỉ phải viết tên của những lĩnh vực mà chúng tôi muốn sử dụng như thế này: -

const { email,title } = obj; 

này ES6 cú pháp đơn giản hơn Nó sẽ tự động chỉ định email và tiêu đề từ obj, chỉ cần tên phải được khai báo chính xác cho trường bắt buộc.

Các vấn đề liên quan