खैर, आपने शायद जावास्क्रिप्ट में वस्तुओं के बारे में पहले सुना होगा और भाषा को समझने के लिए वे कैसे महत्वपूर्ण हैं।
ऑब्जेक्ट अपने मॉडल "कुंजी": "मूल्य" के कारण जेएस को बेहद पठनीय और उपयोगी बनाते हैं। लेकिन जो बात मैं स्पष्ट करना चाहता हूं वह यह है कि "मान" अनुभाग न केवल एक साधारण स्ट्रिंग को स्वीकार करता है, बल्कि एक अन्य वस्तु को भी स्वीकार करता है, जो बदले में एक अन्य वस्तु भी हो सकती है इत्यादि। उदाहरण के लिए:
const character = { name:"Arthur Morgan", age:24, face: { hairSize:5, eyesColor: "blue", } }
यह स्निपेट दर्शाता है कि चेहरा एक वस्तु के साथ-साथ चरित्र भी है। ऐसा करना बिल्कुल ठीक है, और बहुत सारे जटिल एपीआई इस तरह के डेटा से निपटते हैं, जब यह मायने रखता है तो बार-बार समूहीकृत करते हैं।
लेकिन वस्तुओं की वास्तविक शक्ति फ़ंक्शंस पर निर्भर करती है, और यह लीट कोड समस्या इससे निपटती है, साथ ही हमें यह भी बताती है कि टेस्ट लाइब्रेरी हुड के तहत कैसे काम करती है। मूल रूप से आपको एक ऐसे फ़ंक्शन की आवश्यकता होती है जो पुष्टि करता है कि कोई मान अपेक्षित के बराबर है या नहीं: toBe() और notToBe()। ऐसा करने के लिए, हम उन फ़ंक्शंस के साथ किसी ऑब्जेक्ट को वापस कर सकते हैं। वैसे, एरो फ़ंक्शंस का उपयोग इसे सुंदर और सीधा बनाता है।
यहाँ उत्तर है।
function expect(val) { function toBe(anotherValue) { if (val === anotherValue) { return true; } throw Error("Not Equal"); } function notToBe(anotherValue) { if (val !== anotherValue) { return true; } throw Error("Equal"); } return { toBe: (anotherValue) => toBe(anotherValue), notToBe: (anotherValue) => notToBe(anotherValue), }; }
हम इसे किसी अन्य ऑब्जेक्ट का उपयोग करके तुरंत चलते हुए देख सकते हैं: प्रसिद्ध कंसोल और इसका फ़ंक्शन लॉग।
console.log(expect(5).toBe(null)); // give us an error "Not Equal", because 5 is not null
ध्यान दें कि किसी वस्तु को वापस करने का तथ्य हमें expect() और उसके ठीक बाद, .toBe() का उपयोग करने की स्वतंत्रता देता है। ऐसा इसलिए है क्योंकि हम एक ऑब्जेक्ट लौटाते हैं और तुरंत toBe की संपत्ति तक पहुंचते हैं, जो एक फ़ंक्शन है।
यह लीट कोड समस्या यह देखने का एक उत्कृष्ट तरीका है कि ऑब्जेक्ट और फ़ंक्शंस एक साथ कैसे काम कर सकते हैं और जावास्क्रिप्ट में अद्भुत सामग्री बना सकते हैं। उम्मीद है आपने मुझे पसंद किया होगा :)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3