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