2017-02-24 84 views
-1

我有一個add.js我做到這一點它是有效的混淆出口和進口ES6

const add = (a, b) => { 
    return a + b; 
} 

export default add; 

但爲什麼我不能做到這一點

export default add(a, b) => (a + b)?我將得到添加是未定義的。

另一個文件我有

回答

-1

因爲這不是聲明變量/常數在JS有道。 只有適當定義的var/constant纔會獲得空間(內存)。

因此,你需要做這樣的

const add; 

let add; 

var add; 

可能是我的解釋是不正確的,但是當你導出甚至我的意思在這種情況下,如果您尚未聲明變量,則需要使用const,var或let來進行正確的聲明。

+0

我可以知道,爲什麼它被降低了? – Nitesh

+0

*「即使在這種情況下出口時,您也需要使用const,var或let來正確聲明」*否,您不需要。我不知道最後一段是否存在,當它是downvoted(措詞表明不),但如果是這樣,這可能是爲什麼。 (如果沒有,可能是你不清楚你是在處理'export default'方面。) –

+0

謝謝你的解釋,但我的意思是如果你已經聲明瞭一個變量,那麼它是好的,但如果你還沒有聲明你需要在使用導出時使用const/let/var。 最初,我沒有提到最後一段,因爲我提到了爲什麼用戶不能直接使用任何名稱與導出沒有聲明。 現在,我編輯了我的答案以獲得更好的解釋。順便說一句,謝謝,我會記住下次有好的解釋。 – Nitesh

4

如果你只是想給函數直接導出爲默認值,你真的只是這樣做(沒有add):

export default (a, b) => a + b; 

進口將確定用於引用它的標識符。

如果你想要的功能有一個名稱(如name財產填充除默認值以外的內容),你要麼讓它function功能:

export default function add(a, b) { return a + b; }; 

或做它兩個部分,即那些您最初:

const add = (a, b) => a + b; 
export default add; 

(注意:()周圍a + b中的箭頭功能是不必要的,雖然當然你可以選擇讓它們作爲風格的問題。)

+0

我可以做'export default add(a,b)=> {return a + b; };'? –

+0

@AlexYong:不,無論箭頭功能是簡潔還是冗長都無所謂。但是你可以做上面顯示的'function'版本。 –