Mình đọc trên mạng thấy đoạn code thế này nhưng ko rõ nên hiểu nó thế nào: tại sao phải viết thế, làm thế nào để return? Mong các cao thủ chỉ giáo.
(async function loop() {
//
})(param);
Mình đọc trên mạng thấy đoạn code thế này nhưng ko rõ nên hiểu nó thế nào: tại sao phải viết thế, làm thế nào để return? Mong các cao thủ chỉ giáo.
(async function loop() {
//
})(param);
mình ko có hỏi về async await, mình hỏi về cái cú pháp:
(function loop() {
})(param);
tại sao 1 function lại đặt trong (), sau đó mới lại truyền param ở dấu đóng mở ngoặc phía sau?
Cái đó gọi là IIFE (Immediately Invoked Function Expressions), bạn tham khảo thêm trong bài viết này:
Cái đó gọi là Immediately Invoked Function Expression
var a = 'Hello';
(function() {
var a = 'Halo';
console.log(a); // Halo
})();
console.log(a); // Hello
Vậy muốn truyền biến bên ngoài vào thì làm sao?
Dấu ngoặc bên trong function là chỉ access bên trong IIFE nên không thể access từ bên ngoài, vậy ta dùng dấu ngoặc cuối để truyền giá trị từ ngoài vào
Một trong những công dụng của IIFE là bạn có thể tạo các function tự chạy (như plugin js cho các component như slider)
"tại sao 1 function lại đặt trong (), sau đó mới lại truyền param ở dấu đóng mở ngoặc phía sau? "
cấu trúc thực thi function trong js nó như vậy, trong C++ cũng có cấu trúc tương tự thực thi hàm.
Đơn giản là: Viết hảm => Gọi hàm (có thể truyền tham số)