Sau khi thực hiện một số đọc về Mô hình Mô-đun, tôi đã thấy một vài cách để trả lại các thuộc tính mà bạn muốn công khai.Mô-đun JavaScript Mô-đun - Điều gì về việc sử dụng "trả lại" này?
Một trong những cách phổ biến nhất là khai báo các thuộc tính và phương thức công khai của bạn ngay bên trong câu lệnh "trả về", ngoài các thuộc tính và phương thức riêng của bạn. Một cách tương tự (mẫu "Tiết lộ") là cung cấp các tham chiếu đơn giản tới các thuộc tính và phương thức mà bạn muốn công khai. Cuối cùng, một kỹ thuật thứ ba tôi thấy là tạo một đối tượng mới bên trong hàm module của bạn, mà bạn gán các thuộc tính mới của mình trước khi trả về đối tượng đã nói. Đây là một ý tưởng thú vị, nhưng đòi hỏi phải tạo ra một vật thể mới.
Vì vậy, tôi đã suy nghĩ, tại sao không chỉ sử dụng this.propertyName
để gán các thuộc tính và phương pháp công khai của bạn và cuối cùng sử dụng return this
ở cuối? Cách này có vẻ đơn giản hơn nhiều đối với tôi, vì bạn có thể tạo các thuộc tính và phương thức riêng với cú pháp thông thường var
hoặc function
hoặc sử dụng cú pháp this.propertyName
để khai báo phương pháp công khai của mình.
Dưới đây là phương pháp tôi đang đề xuất:
(function() {
var privateMethod = function() {
alert('This is a private method.');
}
this.publicMethod = function() {
alert('This is a public method.');
}
return this;
})();
Có bất kỳ ưu/khuyết điểm để sử dụng phương pháp trên? Còn những người khác?
Bạn đã xem chính xác 'cái này' là gì? Nơi bạn đang thêm publicMethod của bạn? –