01/10/2018, 16:07
Thắc mắc cú pháp javascript
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);
Bài liên quan
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:
Medium – 4 Aug 17
Essential JavaScript: Mastering Immediately-invoked Function Expressions
Understanding functions inside out and then learning how to exploit them to write modern, clean JavaScript code is a critical skill for…
Reading time: 10 min read
Chuẩn rồi, mình đang định giải thích dài dòng.
Xin lỗi vì không bấm nút like được.
Cái đó gọi là Immediately Invoked Function Expression
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.
(tương tự hoàn toàn gọi thực thi function OOP trong C++).
Đơn giản là: Viết hảm => Gọi hàm (có thể truyền tham số)