Tôi tò mò muốn biết liệu có bất kỳ thực tiễn tốt nhất nào liên quan đến JQuery khi xây dựng các khối mã được đóng gói hay không.Thiết kế JavaScript JQuery: Tự thực hiện chức năng hoặc đối tượng văn học?
Nói chung, khi tôi xây dựng một trang, tôi muốn đóng gói các chức năng được sử dụng trong trang đó bên trong một đối tượng. Điều này cho phép tôi đóng gói một số khi xây dựng các ứng dụng. Không có gì tôi ghét hơn là nhìn thấy một tệp JavaScript với một bó của số này
function doSomethingOnlyRelevantOnThisPage() {
// do some stuff
}
Tôi làm cho thiết kế lộn xộn và không thực sự đóng gói chức năng độc đáo.
Thường trong nhiều khuôn khổ, có một tiêu chuẩn được sử dụng để thực hiện đóng gói này.
Trong Mootools họ ủng hộ các Object Notation Literal:
var Site = {
// properties and methods
}
Trong YUI họ ủng hộ sự tự Thực hiện ký hiệu Chức năng:
(function() { // properties and methods })()
Những điều tốt đẹp về ví dụ thứ hai là một đóng cửa được tạo ra , do đó cho phép bạn xác định các thuộc tính và phương thức riêng.
Câu hỏi của tôi là: Có bất kỳ người đam mê JQuery nào có bất kỳ phương pháp hay nhất nào để tạo các cấu trúc được đóng gói gọn gàng này không? Lý do đằng sau việc sử dụng của họ là gì?
Tôi tiếp tục nhìn thấy mô hình này, nhưng tôi khao khát một ví dụ đầy đủ hơn - Tôi đã có một trang với một vài yếu tố tương tác riêng biệt và khá có liên quan mà logic nên được đóng gói ngoài nhau. Bất kỳ đề xuất nào về tổ chức mã trong loại tình huống đó? Sử dụng $ .fn.extend cho mỗi phần giao diện người dùng khác nhau có vẻ phản trực giác. –
Tôi chắc chắn sẽ không ủng hộ bằng cách mở rộng chức năng jquery trừ khi bạn đang viết một plugin - vì vậy một cái gì đó có thể tái sử dụng trong nhiều trang. Tôi sẽ, trong trường hợp của bạn, phá vỡ chức năng của tôi lên thành các phần riêng biệt của nó, tạo ra một chức năng tự thực hiện để chứa logic đó trong đóng cửa riêng của mình. Bất kỳ mã chia sẻ nào cũng có thể được gắn vào chính jQuery thông qua $ .extend, cho phép bạn có các hàm trợ giúp không yêu cầu ngữ cảnh của một phần tử hoạt động. –
Bài viết rất hay về Biểu thức hàm ngay lập tức (IIFE) http://benalman.com/news/2010/11/immediately-invoked-function-expression/ – stormwild