में मेरे रिकर्सन फ़ंक्शन को कॉल नहीं कर सकता मेरे पास एक ऐसा फ़ंक्शन है जो फ़ोल्डर के पेड़ के माध्यम से खोज करता है और चयनित फ़ोल्डर के मूल फ़ोल्डर को पाता है।जावास्क्रिप्ट/पॉलिमर
यहां कार्य है।
getParentFolder: function (searchroot, childFolder) {
searchroot.subfolders.forEach(function (folder) {
if (folder.key == childFolder.key) {
return searchroot;
}
else {
if (folder.subfolders) {
return this.getParentFolder(folder, childFolder);
}
}
});
}
जब मैं this.getParentFolder(rootFolder, childFolder);
के साथ इस फोन यह बस सिर्फ मुझे देता है: Uncaught TypeError: this.getParentFolder नहीं एक समारोह क्यों है? उसी फ़ाइल में मैं अन्य कार्यों को कॉल करता हूं जो वे पूरी तरह से ठीक काम करते हैं। यह एकमात्र ऐसा कार्य है जिसे मैं कॉल करने में सक्षम हूं। क्या यह रिकर्सन की वजह से है?
तो क्या इसका मतलब यह है कि हर बार जब मैं इसे किसी भी लूप में बुलाता हूं क्योंकि जावास्क्रिप्ट की प्रकृति, मुझे इसे हर बार स्वयं को फिर से सौंपना है? – nanobots
बिल्कुल, अगर आप मुख्य वस्तु का ट्रैक रखना चाहते हैं। वैकल्पिक रूप से, आप ['बाइंड'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) –
@nanobots का उपयोग कर सकते हैं, आप बाहरी ' ''प्रत्येक' के लिए एक तर्क के रूप में जो 'स्वयं' का उपयोग करने से बचाता है। –