यह मार्गदर्शिका मेरे पिता द्वारा लिखी जा रही है जो alis4ops.com का निर्माण कर रहे हैं।
हमारे पास निम्नलिखित कार्य हैं:
DragDrop.js में बाबा को परिभाषित किया गया
function handleStartTouch(event) { draggedElement = event.target; const touch = event.touches[0]; touchStartX = touch.clientX - draggedElement.getBoundingClientRect().left; touchStartY = touch.clientY - draggedElement.getBoundingClientRect().top; } function handleMoveTouch(event) { event.preventDefault() if (draggedElement) { const touch = event.touches[0]; // ..more code } }
ध्यान दें कि हम ड्रैगएलिमेंट को ऑनलाइन एक्सेस कर रहे हैं:
hanldeMoveTouch को कॉल करने पर कोई त्रुटि नहीं होती है।
Chrome DevTools में if (draggedElement) पर ब्रेकप्वाइंट लगाने से पता चलेगा कि DragElement HandleStartTouch में इवेंट.टार्गेट द्वारा प्रदान किए गए उसी HTML तत्व को हल करता है
हम हैंडलमूवटच में ड्रैगएलिमेंट तक क्यों पहुंच सकते हैं, भले ही इसे हैंडलस्टार्टटच में परिभाषित किया गया हो
अधिक सामान्य रूप से, हम एक वेरिएबल तक क्यों पहुंच सकते हैं जो किसी फ़ंक्शन में जावास्क्रिप्ट में किसी अन्य फ़ंक्शन में परिभाषित किया गया था?
हैंडलस्टार्टटच फ़ंक्शन देखें:
function handleStartTouch(event) { draggedElement = event.target; const touch = event.touches[0]; touchStartX = touch.clientX - draggedElement.getBoundingClientRect().left; touchStartY = touch.clientY - draggedElement.getBoundingClientRect().top; }
विशेष रूप से पंक्ति:
draggedElement = event.target;
यह किसी भी कीवर्ड का उपयोग करके वेरिएबल नाम ड्रैगएलिमेंट घोषित नहीं करता है
उदाहरण के लिए, हम इसे इस तरह परिभाषित नहीं कर रहे हैं:
const draggedElement = event.target;
जावास्क्रिप्ट में, जब हम परिवर्तनीय घोषणाओं (जिन्हें कीवर्ड भी कहा जाता है) का उपयोग नहीं करते हैं, तो जावास्क्रिप्ट उस चर को एक वैश्विक चर मानता है।
निम्नलिखित उदाहरण पर विचार करें जहां हम दो कार्यों को परिभाषित करते हैं:
// Takes in two arguments and returns the sum function add(x, y) { sum = x y return sum } // prints sum if it is defined function printStatus() { if (sum) { console.log("Sum: ", sum) } else { console.log("Sum does no exist") } }
Chrome में DevTools खोलें
कंसोल में, कॉल ऐड(1,1)
add(1,1) => 2
फिर printStatus पर कॉल करें
हम देख सकते हैं कि printStatus() add(x, y)
में परिभाषित वेरिएबल योग तक पहुंच सकता हैऐसा इसलिए है क्योंकि परिवर्तनीय राशि को निम्नलिखित कीवर्ड के बिना घोषित किया जा रहा है:
अब योग के लिए एक परिवर्तनीय घोषणा का उपयोग करने के लिए add(x, y) add को बदलें
// Takes in two arguments and returns the sum function add(x, y) { const sum = x y // use the variable declartion const return sum } // prints sum if it is defined function printStatus() { if (sum) { console.log("Sum: ", sum) } else { console.log("Sum does no exist") } }
आइए कंसोल लॉग में फ़ंक्शंस को फिर से परिभाषित करें।
हमें इसे फिर से परिभाषित करने की आवश्यकता है क्योंकि हमने एक नया डेव कंसोल शुरू किया है।
अब कंसोल में, कॉल ऐड(2, 2)
यह देखने के लिए printStatus पर कॉल करें कि क्या add(x, y) में परिभाषित वेरिएबल योग तक पहुंच सकते हैं
printStatus() > Uncaught ReferenceError: sum is not defined at printStatus (:9:3) at :1:1
त्रुटि कहती है कि योग परिभाषित नहीं है
यह पुष्टि करता है कि जब किसी फ़ंक्शन के भीतर एक वेरिएबल को एक वेरिएबल घोषणा (const, Let, var) के साथ परिभाषित किया जाता है, तो उस वेरिएबल का दायरा केवल फ़ंक्शन के भीतर होता है
जब एक वेरिएबल को किसी फ़ंक्शन के भीतर एक वेरिएबल घोषणा के बिना परिभाषित किया जाता है, तो उस वेरिएबल का दायरा वैश्विक होता है।
उम्मीद है कि इससे बाबा (और इसे पढ़ने वाले किसी भी अन्य व्यक्ति) को मदद मिलेगी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3