Her iki işlevi de kapatmaya yerleştirmek için üçüncü bir yol önereceğim. Şunun gibi olurdu:
var functionA = (function(){
function functionB() {
// do stuff...
}
function functionA() {
// do stuff...
functionB();
// do stuff...
}
return functionA;
})();
Her iki fonksiyonun bildirimini bir IIFE'ye sararak kapatmayı yaratırız . IIFE'nin dönüş değeri, fonksiyonun isminin bir değişkeninde saklanan genel fonksiyondur. Kamusal işlev, tam da küresel bir işlev olarak bildirildiği gibi çağrılabilir functionA(). Dönen değerin , işlev çağrısı değil, sonuçta parens olmadığını gösteren işlev olduğunu unutmayın.
İki işlevi bu şekilde sararken functionB, şimdi tamamen özeldir ve kapağın dışından erişilemez, ancak yalnızca görülebilir functionA. Global ad alanını karıştırmıyor ve tanımını da karıştırmıyor functionA.