JavaScript'te Kapanışlar ile Modüllerde Nesne Dışa Aktarma
Aşağıdaki modüle sahip olduğumuzu varsayalım:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
})();
Üç fonksiyonu da dışa aktarmak istediğimizi varsayalım. Bu durumda, modülün dışında gereksiz fonksiyon isimleri oluşturmamak için, tüm fonksiyonları bir nesneye yazmak ve bu nesneyi dışa aktarmak daha iyidir:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1: func1, func2: func2, func3: func3};
})();
Anahtar isimleri ve değişken isimleri aynı olduğu için, fonksiyonları içeren nesne basitleştirilebilir:
;(function() {
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
window.module = {func1, func2, func3};
})();
Başka bir yol da izlenebilir. Fonksiyonları tanımlarken hemen bir nesneye şu şekilde yazacağız:
;(function() {
let module = {};
module.func1 = function() {
alert('module funcion');
}
module.func2 = function() {
alert('module funcion');
}
module.func3 = function() {
alert('module funcion');
}
window.module = module;
})();
Aşağıdaki modül verilmiştir:
;(function() {
let str1 = 'module variable';
let str2 = 'module variable';
let str3 = 'module variable';
function func1() {
alert('module funcion');
}
function func2() {
alert('module funcion');
}
function func3() {
alert('module funcion');
}
function func4() {
alert('module funcion');
}
function func5() {
alert('module funcion');
}
})();
İlk beş fonksiyonu ve ilk iki değişkeni içeren bir nesneyi dışa aktarın.