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
.