Tôi đang đọc mã nguồn KnockoutJS."mới" Trước khi gọi hàm ẩn danh Trả về đối tượng
Tôi chạy vào dòng sau mà tôi không chắc là tôi hiểu ...
ko.utils = new (function() {
Nói chung, cấu trúc có vẻ là dọc theo dòng:
ko.utils = new (function() {
// some variables declared with var
return {
export:value,
export:value
};
})();
I don' Tôi hiểu cấu trúc này, tại sao cần new
? Nó làm gì? nó là gì hữu ích cho?
(Tôi nghĩ rằng nếu một hàm được gọi với new
trước tên của nó được gọi là một nhà xây dựng, và nếu nó trả về một đối tượng nó giống y hệt một invokation mà không new
.)
UPDATE: tôi hỏi nhóm KnockoutJS trên github và đây là những gì tôi nhận được:
Tôi đoán là Steve không biết rằng nó không cần thiết. Nhìn lại cam kết ban đầu của mình, tôi thấy rất nhiều tin tức không cần thiết đã bị xóa.
Theo như tôi có thể nói, 'cái new' không có tác dụng trong trường hợp này –
liên quan: [Có quyền nghĩ đến một hàm JavaScript Biểu hiện có sử dụng từ khóa 'mới' là 'tĩnh'] (http://stackoverflow.com/questions/10406552/is-it-right-to-think-of-a-javascript-function-expression-that-uses-the-new-key) – Bergi
Chỉ tình cờ gặp phải cả hai chúng… – Bergi