আমি একটি তৃতীয় পাথ প্রস্তাব করতে যাচ্ছি, উভয় ফাংশন বন্ধের মধ্যে স্থাপন করতে। এটি দেখতে যেমন হবে:
var functionA = (function(){
function functionB() {
// do stuff...
}
function functionA() {
// do stuff...
functionB();
// do stuff...
}
return functionA;
})();
আমরা একটি আইআইএফই উভয় ফাংশন এর ঘোষণা মোড়ক দ্বারা ক্লোজার তৈরি । IIFE এর রিটার্ন মান হ'ল পাবলিক ফাংশন, ফাংশনের জন্য নামের একটি ভেরিয়েবলে সঞ্চিত। পাবলিক ফাংশনটি ঠিক একইভাবে ডাকা যেতে পারে যেমন এটি কোনও বিশ্বব্যাপী ফাংশন হিসাবে ঘোষিত হয়েছিল, যেমন functionA()
। মনে রাখবেন যে রিটার্ন মান হ'ল ফাংশন , ফাংশনে কোনও কল নয়, সুতরাং শেষে কোনও প্যারেন্স নেই।
দুটি ফাংশন মোছার মতো করে functionB
এখন সম্পূর্ণ ব্যক্তিগত, এবং বন্ধের বাইরে অ্যাক্সেস করা যায় না, তবে এটি কেবল দৃশ্যমান functionA
। বিশ্বব্যাপী নামস্থান cluttering করা হয় না, এবং সংজ্ঞা cluttering নয় functionA
।