तो तर्क चर की एक सरणी है क्या तुम कर सकते हो वस्तुओं का उपयोग करें या एक स्ट्रिंग के रूप में चर नाम से पारित है ? तो नहीं, मूल वैरिएबल नाम प्राप्त करने का कोई तरीका नहीं है जब इसे पारित किया जाए।
["123","abc"];
और ज्यादा कुछ नहीं
आप समारोह चर के नाम और गुंजाइश वे कर रहे हैं, की तरह प्रदान कर सकता है:
function log(arr,scope){
for(var i=0;i<arr.length;i++){
console.log(arr[i]+':'scope[arr[i]]);
}
}
प्राप्त अंत में, वे तो बस की तरह लग रहे
हालांकि, यदि आप भी दायरे दे सकते हैं तो यह समस्या में चलता है।
nonstrict कार्यों के लिए
this
undefined
निर्माता कार्यों के लिए
- है
this
window
सख्त कार्यों के लिए
- है,
this
निर्माण किया है: क्या this
कुछ कोड के क्षेत्रों में है के मुद्दों का एक बहुत देखते हैं आपत्ति
- एक वस्तु शाब्दिक भीतर,
this
तत्काल संलग्न वस्तु
है 210
ताकि आप this
को एक दायरे के रूप में पारित करने पर भरोसा न करें। जब तक आप दायरा प्रदान नहीं कर सकते, यह एक और मृत अंत है।
अगर आप उन्हें एक वस्तु के रूप गुजरती हैं, तो आप वस्तु और उसके "कुंजी" और नहीं मूल चर नाम के माध्यम से पुनरावृति कर सकते हैं। हालांकि, इस मामले में इलाज से यह अधिक नुकसान है।
जावास्क्रिप्ट में यह संभव नहीं है क्योंकि आप इसे काम करना चाहते हैं। 'Var foo = bar = {}' जैसी चीज़ के साथ एक ही ऑब्जेक्ट को 2 नामों से संदर्भित किया जाता है, और यदि आप ऑब्जेक्ट को फ़ंक्शन में पास करते हैं तो फ़ंक्शन के अंदर से उस लुकअप को रिवर्स करने के लिए असंभव है और देखें कि कौन सा नाम इस्तेमाल करने के लिए उपयोग किया गया था इसमें – Gareth
ठीक है तो मैं खोजना बंद कर सकता हूं। Thanx! – arpo
इसके बजाय, आपको डीबगर का उपयोग करने का तरीका सीखना चाहिए। अपनी कंसोल.लॉग लाइन के बजाए डीबगर को केवल एक लाइन डालने से शुरू करें, और उसके बाद फ़ायरबग या क्रोम इंस्पेक्टर के साथ अपना कोड चलाएं – Gareth