आजकल मेरा अधिकांश काम जेएस विकास से संबंधित है।आंतरिक फ़ंक्शन की कितनी प्रतियां बनाई जाएंगी
हालांकि मुझे अचानक पता चला कि मैं कुछ प्रश्नों से उलझन में हूं।
चेक इस कोड (मैं एक कस्टम वर्ग के लिए एक विधि जोड़):
MyCustomClass.prototype.fun=function(xx){
this.options={.....}
function innerFun01(){}
function innerFun02(){}
}
अब, यह का उपयोग करें।
var mcc=new MyCustomClass();
mcc.fun(xxxx);
var mcc2=new MyCustomClass();
mcc2.fun(xxxx);
अब, मुझे आश्चर्य है कि कैसे समारोह "innerFun01" और "innerFun02" की कई प्रतियां स्मृति में बनाया जाएगा?
मैं वास्तव में उलझन में हूं।
क्या यह स्मृति की बर्बादी है? उन्हें बदलने के लिए कोई विचार? लेकिन मैं उन्हें बाहर परिभाषित नहीं करना चाहता, क्योंकि मैं उन्हें बेनकाब नहीं करना चाहता हूं। – hguser
यह वास्तव में स्मृति की बर्बादी नहीं है। वे तत्काल हो जाते हैं, लेकिन फिर 'मज़ा' चलने के बाद बाहर फेंक दिया जाता है। जावास्क्रिप्ट कचरा कलेक्टर जल्द ही उसके साथ आएगा और उन्हें इकट्ठा करेगा और बाहर निकल जाएगा। – Stephen
जो आर्मस्ट्रांग, एरलांग लुमेनरी, डेवलपर्स से "सबसे खूबसूरत कोड लिखने" के लिए आग्रह करके उस भाषा के मुद्दों के बारे में ऐसी चिंताओं का जवाब देता है। कोड लिखें * एल्गोरिदमिक * ध्वनि, और केवल चरम (संभावनाएं) मामलों में ऐसी चीजों के बारे में चिंता करें। – Pointy