2016-12-09 7 views
25

電子を勉強すると、BrowserWindowオブジェクトを取得する方法が2つ見つかりました。 'constのは{}' 私はJSに関する重要な何かを欠場work.Doことができる理由と、私は理解できないJavaScriptでのconstとconstの{}の違いは何javacriptのconstとconst {}の違いは何ですか

const {BrowserWindow} = require('electron') 

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

答えて

36

2つのコードは同じですが、最初のコードは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);

2

これはES6の新機能の一つです。中括弧の表記法は、いわゆるdestructing 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

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

が使用しますが、オブジェクト定義したES6.Ifとして: - 今

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

objの電子メールとタイトルフィールドを割り当てたり使用したりする場合は、

のような構文を書く必要はありません

これは現在古い学校です。

私たちは、私たちのオブジェクトがobjオブジェクト内の20個のフィールドが含まれている場合、我々はちょうど私達はこのように使用するこれらのフィールドの名前を記述する必要があり、すなわちES6の消滅の割り当てを使用することができます -

const { email,title } = obj; 

これをES6の構文が単純なものです 自動的にobjから電子メールとタイトルが割り当てられます。必要なフィールドに名前が正しく記述されている必要があります。

関連する問題