2017-08-29 90 views
1

在我的一個NodeJS應用程序中,我注意到了下面的代碼;使用const來請求一個模塊

const { Function } = require('./modules/helpers.js') 

這有效嗎?還需要使用const的任何好處?

回答

2

是,destructuring assignment是一個有效的語法:

的解構賦值語法是JavaScript表達式,使得它可以從對象解包從數組值或屬性,爲不同的變量。

({a, b} = {a: 10, b: 20}); 
console.log(a); // 10 
console.log(b); // 20 

參見:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

編輯:

至於好處,它是在大多數的情況下的語法糖。它允許您直接將導入功能稱爲Function而不是Helper.Function

它也可以reduce your bundle.js file size

+0

非常感謝...這是ES6的特定語法/代碼嗎? – testndtv

+0

這裏還有使用「const」的意義嗎? – testndtv

+0

向下滾動鏈接中的關鍵字以查找該答案....是的。 – user3732793

-1

使用const有一些大的改進爲你自​​己。所以你不能再改變你的導入模塊了。這個導入的模塊被稱爲 immutable,這對於某些點來說確實很好。欲瞭解更多看看在這裏:Short Introduction into immutable data structures

編輯const並不真正意味着一個值是不能改變了,但它意味着,在這一點上的對象不能被重新分配。 (感謝@馬克Stosberg再次指出了這一點)

(簡單的代碼更容易推理,這是對良好的代碼風格)

而且語法是有效ES6自毀語法。確保你的模塊輸出一個名爲Function的變量。欲瞭解更多,請看這裏:MDN Destruction Syntax

+2

導入的模塊保持可變。從[const的官方文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const):* const聲明創建對值的只讀引用。這並不意味着它所擁有的價值是不可變的,只是變量標識符不能被重新分配。* –