2017-06-21 10 views
5

मैं react-jsonschema-form के कोड से गुज़र रहा था। मैं निम्नलिखित पंक्तियों में आया हूं जिन्हें मैं समझने में असमर्थ हूं।जावास्क्रिप्ट सिंटैक्स को समझने में असमर्थ

var formData = (0, _utils.getDefaultFormState)(schema, props.formData, definitions); 

कैसे पहले ब्रैकेट में दी गई सामग्री एक समारोह के लिए जो तर्क (स्कीमा, props.formData आदि) पारित कर रहे हैं क्या है?

+0

पहले ब्रेसिज़ '()' एक फ़ंक्शन देता है जो 3 तर्क स्वीकार करता है। – Jai

+2

अभिव्यक्ति '(n0, n1, ..., n)' 'n' का मूल्यांकन करती है, इसलिए आपके मामले में, '_utils.getDefaultFormState' फ़ंक्शन। इसका उपयोग क्यों किया जाता है, मुझे यकीन नहीं है कि – Phil

+1

फिल आपकी टिप्पणी अपने अधिकार में एक उत्तर के रूप में योग्य होगी। –

उत्तर

1

मुझे लगता है कि इस प्रश्न का उत्तर यह है कि पहली अभिव्यक्ति में (0,_utils.getDefaultFormState)comma, ऑपरेटर अंतिम तर्क का मूल्यांकन करता है और इसे वापस करता है।

तो, कॉमा ऑपरेटर बाएं से दाएं से अपने ऑपरेटरों पर काम करता है और अंतिम अभिव्यक्ति में सबसे अधिक मूल्यांकित ऑपरेंड देता है।

लेकिन यह फ़ंक्शंस और उसके लौटाए गए मानों का उपयोग करने के मामले में अलग है।

// sample from MDN. 
function myFunc() { 
    var x = 0; 

    return (x += 1, x); // the same as return ++x; 
} 

के रूप में मैं टिप्पणी में उल्लेख किया है:

पहले कोष्ठक स्वयं फ़ंक्शन को निष्पादित करने होते हैं और यह देता है यह _utils वस्तु है, जो 3 या उससे अधिक तर्क स्वीकार करता है के एक समारोह के रूप में मूल्य है।

1

उस संदर्भ में पहली संश्लेषण जोड़ी कथन का एक अनुक्रम है जिसका मान अंतिम अभिव्यक्ति का मूल्य है। तब:

(0,_utils.getDefaultFormState) 

रिटर्न समारोह objet _utils.getDefaultFormState जो उसके बाद निम्न तर्क के साथ कहा जाता है।

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