javascript - ECMAScript6 तीर फ़ंक्शन जो ऑब्जेक्ट देता है





ecmascript-6 arrow-functions (4)


आपको रिटर्निंग ऑब्जेक्ट शब्दशः कोष्ठक में लपेटना होगा। अन्यथा घुंघराले ब्रेसिज़ को फ़ंक्शन के शरीर को दर्शाने के लिए माना जाएगा। निम्नलिखित कार्य करता है:

p => ({ foo: 'bar' });

आपको किसी अन्य अभिव्यक्ति को कोष्ठक में लपेटने की आवश्यकता नहीं है:

p => 10;
p => 'foo';
p => true;
p => [1,2,3];
p => null;
p => /^foo$/;

और इसी तरह।

किसी तीर फ़ंक्शन से ऑब्जेक्ट लौटने पर, ऐसा लगता है कि व्याकरण में अस्पष्टता के कारण {} के अतिरिक्त सेट का उपयोग करना और वापसी विवरण आवश्यक है:

p => { return { foo: 'bar' } }

यदि तीर फ़ंक्शन कुछ और देता है, तो {} और वापसी अनावश्यक होती है, उदाहरण के लिए:

p => 'foo'

क्या ज़ाहिर तौर पर कुछ ऐसा है, जिसका मुझे स्मरण नहीं है?




आप सोच सकते हैं, सिंटैक्स वैध क्यों है (लेकिन अपेक्षित काम नहीं कर रहा है):

var func = p => { foo: "bar" }

यह जावास्क्रिप्ट के लेबल वाक्यविन्यास की वजह से है:

इसलिए यदि आप उपरोक्त कोड को ES5 पर ट्रांसफ़ाइल करते हैं, तो यह इस तरह दिखना चाहिए:

var func = function (p) {
  foo:
  "bar"; //obviously no return here!
}



यदि तीर का शरीर घुंघराले ब्रेसिज़ में लपेटा जाता है, तो यह पूरी तरह से वापस नहीं आ जाता है। ऑब्जेक्ट को ब्रांड्स में लपेटें। यह ऐसा कुछ दिखता है।

p => ({ foo: 'bar' })

शरीर को माता-पिता में लपेटकर, फ़ंक्शन { foo: 'bar } वापस आ जाएगा।

उम्मीद है कि, आपकी समस्या हल करता है। यदि नहीं, तो मैंने हाल ही में तीर कार्यों के बारे में एक लेख लिखा है जो इसे अधिक विस्तार से कवर करता है। मुझे उम्मीद है कि आप इसे उपयोगी पाएँ। जावास्क्रिप्ट तीर कार्य




' अगर (window.x) {} ' त्रुटि सुरक्षित है

सबसे अधिक संभावना है कि आप चाहते हैं if (window.x) । यह चेक सुरक्षित है भले ही एक्स घोषित नहीं किया गया हो ( var x; ) - ब्राउज़र कोई त्रुटि नहीं फेंकता है।

उदाहरण: मैं जानना चाहता हूं कि मेरा ब्राउज़र इतिहास API का समर्थन करता है या नहीं

if (window.history) {
    history.call_some_function();
}

यह कैसे काम करता है:

खिड़की एक ऐसी वस्तु है जो सभी वैश्विक चर को अपने सदस्यों के रूप में रखती है, और गैर-मौजूदा सदस्य तक पहुंचने का प्रयास करना कानूनी है। यदि एक्स घोषित नहीं किया गया है या सेट नहीं किया गया है तो अपरिभाषितwindow.x रिटर्न । अपरिभाषित झूठ की ओर जाता है जब () इसका मूल्यांकन करता है।







javascript ecmascript-6 arrow-functions