2017-10-05 70 views
0

我最近遇到這行代碼。理解模塊需要JavaScript的語法

const { Bar, Data: { Selectors } } = require('some-module'); 

有人能告訴我Data: { Selectors }在這段代碼中做什麼?我知道它是在我的代碼庫中導入一些模塊,只是對{Selectors}部分感到困惑。

此外,如果我想使用import語法編寫它,那麼對於相同的代碼是什麼?

e.g:import Bar from "some-module"

+0

這只是嵌套解構。 – Bergi

+0

等效的'import'語法在很大程度上取決於'some-module'的ES6版本的'export'語法的用途。 – Bergi

回答

2

它並沒有真正與模塊做的(語法是進口相同或要求:import {Bar} from "some-module"),它只是一個destructuring assignment創建兩個變量,BarSelector

這裏的許多其他ES6沿着另一個例子功能http://es6-features.org/#ObjectMatchingDeepMatching

const obj = {Bar: 1, Data: { Selectors: [1,2]}}; 
 
    const { Bar, Data: { Selectors } } = obj; 
 
    // This is another ES6 feature, same as saying 
 
    // console.log({Bar: Bar}) 
 
    console.log({Bar}); 
 
    console.log({Selectors});

以上是相同的話說

const Bar = obj.Bar; 
const Selectors = obj.Data.Selectors