2016-05-13 40 views
0

我希望能夠創造像一個函數:如何定義const函數javascript(語法糖)?

const function doSomething(){...} 

不過貌似只有這樣,才能實現它是:

const doSomething=function(){...} 

難道我錯了嗎?或者實際上是否有語法糖呢?

+0

究竟什麼是你想在第一個這樣做?或者第二個。你想做什麼? – Hogan

+1

JS''const'與C++'const'不一樣。它並沒有說明該功能的功能。 – ssube

+0

不試圖使函數返回一個常量值,只是試圖避免它可以重新分配,並因此而改變。 – caeus

回答

2

只有在JavaScript中使用const才能防止重新分配變量。不要與防止價值突變混淆。

const需要標識符,賦值運算符和右邊。將const與函數結合的唯一方法是使用函數表達式(您的第二個示例)。

const doSomething = function() { 
    // do stuff 
}; 
// will either throw an error or the value of doSomething simply won't change 
doSomething = somethingElse; 

很多人喜歡以確保其功能被命名以便名稱出現在調用堆棧,因此喜歡使用函數聲明(你的第一個例子)。但是,可以命名一個函數表達式。

const doSomething = function doSomething() { 
    // name will appear as doSomething in the call stack 
}; 
+1

注意,在真正的ES6環境中,或者在Babel中,函數名稱會自動添加,因此您可以分配匿名函數而不用擔心調用堆棧的可調試性。 – loganfsmyth