Gần đây tôi đã so sánh phiên bản hiện tại của json2.js với phiên bản mà tôi có trong dự án của mình và nhận thấy sự khác biệt về cách biểu thức hàm được tạo và tự thực thi.
Mã được sử dụng để bọc một hàm ẩn danh trong ngoặc đơn và sau đó thực thi nó,
(function () {
// code here
})();
nhưng bây giờ nó bao bọc hàm tự động thực thi trong ngoặc đơn.
(function () {
// code here
}());
Có một nhận xét của CMS trong câu trả lời được chấp nhận của Giải thích cú pháp hàm ẩn danh được đóng gói của JavaScript rằng "cả hai: (function(){})();
và (function(){}());
đều hợp lệ."
Tôi đã tự hỏi sự khác biệt là gì? Cái trước có chiếm bộ nhớ bằng cách để lại một chức năng ẩn danh toàn cầu không? Dấu ngoặc phải được đặt ở đâu?