2016-09-19 10 views
5

कौन सा करना बेहतर है: एक const तीर समारोह निर्यात करते हैं, तो जैसे:निर्यात कॉन्स तीर समारोह या मूल कार्य?

export const foo =() => 'bar' 

या एक नियमित रूप से समारोह निर्यात करते हैं, तो जैसे:

export function baz() { 
    return 'bar'; 
} 

वे इतने तरह संकलन:

exports.baz = baz; 
function baz() { 
    return 'bar'; 
} 
var foo = exports.foo = function foo() { 
    return 'bar'; 
}; 

ऐसा लगता है कि कॉन्स/तीर फ़ंक्शन संयोजन का उपयोग एक अतिरिक्त चर (foo) घोषित करता है, जो एक अनावश्यक अतिरिक्त एस लगता है सरल समारोह घोषणा पर tep।

+0

यह ईसीएमएस्क्रिप्ट 6 ईसीएमएस्क्रिप्ट 5 में संकलित किया जा रहा है, है ना? – qxz

+0

प्रश्न का मानना ​​है कि ईएस 6 कोड को ईबे 5 में बेबेल के साथ पारदर्शी किया गया है, यह सच नहीं हो सकता है। – estus

+0

हां, मैं स्पष्ट नहीं होने के लिए क्षमा चाहता हूं। ईएस 6 को बेबेल के माध्यम से ES5 में पारदर्शी किया जा रहा है। – abustamam

उत्तर

6

मतभेद कम हैं। दोनों एक चर घोषित करते हैं।

  • एक const चर, अपने मॉड्यूल के भीतर भी स्थिर है, जबकि एक समारोह घोषणा सैद्धांतिक रूप से ओवरराइट किया जा सकता है
  • एक तीर समारोह a function expression, not a function declaration है, और काम परिपत्र निर्भरता के लिए समस्याएं पैदा कर सकता
  • एक तीर समारोह नहीं कर सकते be a constructor or use a dynamic this
  • यदि आप ब्लॉक बॉडी का उपयोग करते हैं तो आप एक संक्षिप्त शरीर और कुछ वर्णों का उपयोग करते हैं तो एक तीर फ़ंक्शन कुछ वर्ण कम होता है।
+1

तो आर्किटेक्चरलली बोलते हुए, जब तक फ़ंक्शन को कन्स्ट्रक्टर या 'यह' की आवश्यकता नहीं होती है, तब तक 'const' चर होना चाहिए? क्या आप बिंदु संख्या 2, फिर से परिपत्र निर्भरताओं पर विस्तार कर सकते हैं? – abustamam

संबंधित मुद्दे