array = [1,2,3,4]
for num in array
//do something
शेष कार्य के संदर्भ में num
का मूल्य क्या है? क्या num
लूप पर डूब गया है?लूप के लिए कॉफ़ीस्क्रिप्ट में परिवर्तनीय दायरा?
array = [1,2,3,4]
for num in array
//do something
शेष कार्य के संदर्भ में num
का मूल्य क्या है? क्या num
लूप पर डूब गया है?लूप के लिए कॉफ़ीस्क्रिप्ट में परिवर्तनीय दायरा?
नहीं, num
लूप को स्कॉप्ड नहीं किया जाता है। जैसा कि आप संकलित जेएस में देख सकते हैं (जैसा कि @ एपिडेमियन ने बताया है) यह वर्तमान स्कोप वैरिएबल है, इसलिए आप इसे बाकी के फ़ंक्शन में भी एक्सेस कर सकते हैं (उदा। शेष दायरे में शेष)।
लेकिन पाश अंदर समारोह कॉलबैक को परिभाषित करने के मामले में सावधान रहना होगा:
array = [1, 2, 3]
for num in array
setTimeout (() -> console.log num), 1
आउटपुट
3
3
3
कॉलबैक के भीतर वर्तमान चर पर कब्जा करने के लिए, आप do
जो केवल फ़ंक्शन को कॉल करने का उपयोग करना चाहिए:
for num in array
do (num) ->
setTimeout (() -> console.log num), 1
कि एक मुश्किल एक हैह – mateusmaso
मैंने इस गलती के साथ कुछ रमणीय दौड़ की स्थिति बनाई है, थके हुए – wmarbut
बस इससे थोड़ा सा हो गया। मुझे लगता है कि 'करना (num) ->' डिफ़ॉल्ट व्यवहार होना चाहिए। – ndbroadbent
जब आप इसे चलाते थे तो क्या हुआ? – Mehrdad
आप कॉफीस्क्रिप्ट सामान का प्रयास कर सकते हैं और संकलित परिणाम देख सकते हैं [यहां] (http://jashkenas.github.com/coffee-script/#try:array%20%3D%20 [1% 2C2% 2C3% 2C4]% 0A % 0% के लिए% 20%% 20in% 20array% 0A% 20% 20console.log% 20% 27inside% 20loop% 27% 2 सी% 20num% 0A% 0Aconsole.log% 20% 27outside% 20loop% 27% 2C% 20num% 0A) = डी – epidemian