Tôi hiện đang biết hai cách để xây dựng đơn trong JavaScript. Trước tiên:Làm thế nào để tạo một singleton JavaScript với một hàm tạo mà không sử dụng trở lại?
var singleton = {
publicVariable: "I'm public",
publicMethod: function() {}
};
Hoàn hảo ngoại trừ việc nó không có hàm tạo nơi tôi có thể chạy mã khởi tạo.
Thứ hai:
(function() {
var privateVariable = "I'm private";
var privateFunction = function() {}
return {
publicVariable: "I'm public",
publicMethod: function() {}
}
})();
Phiên bản đầu tiên không có tài sản riêng và cũng không có một constructor, nhưng nó là nhanh hơn và đơn giản hơn. Phiên bản thứ hai phức tạp hơn, xấu xí, nhưng có một hàm tạo và các thuộc tính riêng.
Tôi không có nhu cầu về tài sản riêng tư, tôi chỉ muốn có một nhà xây dựng. Có điều gì tôi thiếu hoặc là hai cách tiếp cận ở trên những cái duy nhất tôi có?
Cách tiếp cận thứ hai không phải là "xấu xí"; đó là một phần tự nhiên của ngôn ngữ. Có khả năng tạo ra các chức năng với các chức năng là một trong những tính năng mạnh mẽ nhất của Javascript. – Pointy