Đã gặp phải một số mã đang sử dụng IIFE trong biểu thức chứ không chỉ là hàm bình thường.Biểu thức hàm ẩn danh JavaScript vs IIFE
var custom_type = (function() {
return $('#myDiv').attr('custom_type');
})();
Thông thường tôi sẽ viết những dòng này như một cái gì đó như:
var custom_type = function() {
return $('#myDiv').attr('custom_type');
};
là gì lý do IIFE? Điều duy nhất tôi có thể nghĩ là IIFE có thể gán biến số custom_type
chỉ một lần khi bắt đầu trong khi thứ hai có thể tiếp tục kiểm tra loại cập nhật mỗi khi biến được tham chiếu.
Người đầu tiên thực hiện chức năng và lưu trữ kết quả của nó, số giây lưu trữ chức năng dưới dạng định nghĩa. – Rolice
Cái đầu tiên tương đương với 'var custom_type = $ ('# myDiv'). Attr ('custom_type')'.Vì vậy, cả hai ví dụ đều có kết quả khác nhau (trong ví dụ đầu tiên, 'custom_type' là một chuỗi, và trong chuỗi thứ hai là hàm) và không có ngữ cảnh, nó không thể cho biết lý do đầu tiên được sử dụng. Có lẽ ai đã viết mã không muốn 'custom_type' là một hàm. –