Xuất biến và hàm trong module thông qua closures trong JavaScript
Đôi khi cần làm sao để một số biến và hàm của module có thể truy cập được từ bên ngoài. Hãy xem cách thực hiện điều này. Giả sử chúng ta có module sau:
;(function() {
let str = 'biến của module';
function func() {
alert('hàm của module');
}
})();
Hãy export hàm func của chúng ta. Để làm điều này, hãy ghi nó vào một thuộc tính của đối tượng tích hợp sẵn trong trình duyệt window:
;(function() {
let str = 'biến của module';
function func() {
alert('hàm của module');
}
window.func = func;
})();
Bây giờ chúng ta có thể gọi hàm của mình từ bên ngoài module:
;(function() {
let str = 'biến của module';
function func() {
alert('hàm của module');
}
window.func = func;
})();
window.func(); // sẽ hiển thị 'hàm của module'
Đồng thời, không nhất thiết phải gọi hàm như một thuộc tính của đối tượng window:
;(function() {
let str = 'biến của module';
function func() {
alert('hàm của module');
}
window.func = func;
})();
func(); // sẽ hiển thị 'hàm của module'
Cho module sau:
;(function() {
let str1 = 'biến của module';
let str2 = 'biến của module';
let str3 = 'biến của module';
function func1() {
alert('hàm của module');
}
function func2() {
alert('hàm của module');
}
function func3() {
alert('hàm của module');
}
})();
Hãy export ra ngoài một biến và hai hàm bất kỳ.