Gọi Hàm Ngay Lập Tức trong JavaScript
Bây giờ chúng ta sẽ phân tích một kỹ thuật cho phép gọi một hàm ngay tại chỗ nó được khai báo. Cấu trúc như vậy được gọi là Immediately Invoked Function Expression (IIFE).
Hãy xem xét một ví dụ. Giả sử chúng ta có biểu thức hàm như sau:
let func = function() {
console.log('!');
};
func(); // sẽ in ra '!'
Bây giờ hãy thử không gán hàm của chúng ta vào một biến, mà gọi nó ngay lập tức, "tại chỗ". Để làm điều này, chúng ta đặt dấu ngoặc đơn sau hàm:
+function() {
console.log('!'); // sẽ in ra '!'
}();
Việc có dấu cộng trong trường hợp này là điều kiện bắt buộc, vì nếu không có nó, hàm sẽ trở thành Function Declaration, và chúng không thể được gọi tại chỗ (lại còn không có tên). Tất nhiên, thay vì dấu cộng có thể là bất cứ thứ gì, - điều quan trọng là hàm của chúng ta phải là một biểu thức hàm.
Xác định, không chạy code, điều gì sẽ được in ra console:
!function() {
console.log('!');
}();
Xác định, không chạy code, điều gì sẽ được in ra console:
function() {
console.log('!');
}();