当我研究电子时,我找到了两种获取BrowserWindow对象的方法。
const {BrowserWindow} = require('electron')
和
const electron = require('electron')
const BrowserWindow = electron.BrowserWindow
JavaScript中const
和const {}
之间的区别是什么?
我无法理解为什么const {}
可以正常运作。我是否会错过任何关于JS的重要内容?
答案 0 :(得分:104)
这两段代码是等价的,但第一段是使用ES6 destructuring assignment更短。
以下是其工作原理的简单示例:
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);

答案 1 :(得分:17)
const {BrowserWindow} = require('electron')
以上语法使用ES6。如果您将对象定义为:
const obj = {
email: "hello@gmail.com",
title: "Hello world"
}
现在,如果我们要分配或使用obj的电子邮件和标题字段,那么我们就不必编写完整的语法,如
const email = obj.email;
const title = obj.title;
现在这是旧学校。
我们可以使用 ES6 Destructuring 赋值,即如果我们的对象在obj对象中包含20个字段,那么我们只需要编写我们想要使用的字段的名称,如下所示:
const { email,title } = obj;
这是ES6语法更简单的
它将自动从obj
分配电子邮件和标题,只需在必填字段中正确说明名称。
答案 2 :(得分:13)
这是ES6中的新功能之一。花括号表示法是所谓的destructuring assignment
的一部分。这意味着,您不再需要获取对象本身,并在单独的行上为每个属性分配变量。你可以这样做:
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);
正如您在最后看到的那样,功能是相同的 - 只需从对象获取属性。
还有更多的解构分配 - 您可以检查MDN中的整个语法:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
答案 3 :(得分:0)
其他答案已经足够好了。我会推荐一些有用的 Destructuring assignment
功能定义:
<块引用>解构赋值语法是一个 JavaScript 表达式
使unpack values from arrays, or properties from objects, into distinct variables
成为可能。
特点:
> const {0: first, 1: second} = [10, 20]
console.log(first); // 10
console.log(second); // 20
Spread ...
运算符> {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
console.log(a); // 10
console.log(b); // 20
console.log(rest ); // {c: 30, d: 40}
const {a = 10, b = 20} = {a: 1};
console.log(a); // 1
console.log(b); // 20
const {p: a, q: b} = {p: 10, q: 20};
console.log(a); // 10
console.log(b); // 20