Bây giờ tôi đã thấy cú pháp này trên một vài thư viện và tôi tự hỏi lợi ích là gì. (lưu ý rằng tôi biết rõ về việc đóng cửa và những gì mã đang làm, tôi chỉ quan tâm đến sự khác biệt về cú pháp)
!function(){
// do stuff
}();
Là một thay thế cho phổ biến hơn
(function(){
// do stuff
})();
để tự gọi các hàm ẩn danh.
Tôi đang tự hỏi một vài điều. Trước hết, điều gì cho phép ví dụ hàng đầu thực sự hoạt động? Tại sao tiếng nổ cần thiết để làm cho tuyên bố này đúng về mặt cú pháp? Tôi cũng nói rằng nó +
hoạt động, và tôi chắc chắn một số người khác, thay cho!
Thứ hai, lợi ích là gì? Tất cả những gì tôi có thể nói là nó tiết kiệm được một nhân vật, nhưng tôi không thể tưởng tượng rằng đó là một lợi ích to lớn như vậy để thu hút nhiều người chấp nhận. Có một số lợi ích khác tôi đang thiếu?
Sự khác biệt duy nhất tôi có thể thấy là giá trị trả về của hàm tự gọi, nhưng trong cả hai ví dụ này, chúng tôi không thực sự quan tâm đến giá trị trả về của hàm vì nó chỉ được sử dụng để tạo một bao đóng. Vì vậy, ai đó có thể cho tôi biết tại sao người ta có thể sử dụng cú pháp đầu tiên?
!
vì nó nhấn mạnh rằng nó đang được thực thi.