Không có ma thuật ở đây, Constructor
(lớn C) như là một tài sản không có ý nghĩa đặc biệt. Đây chỉ là quy ước.
Về cơ bản họ đang sử dụng một lớp học như cấu trúc để xác định các chức năng
var Alert = function() {};
Alert.prototype.foo = function() {};
và phơi bày nó thông qua một tổ chức phi-class như giao diện.
$('#blurf').alert();
Vì vậy, đây chỉ đơn giản là một quy ước plugin hữu ích. Mỗi plugin jQuery định nghĩa chính phương thức chính trên đối tượng $.fn
, có quyền truy cập vào các hàm tạo mà nó cần thông qua việc đóng. Nhưng bản thân nhà xây dựng là riêng tư với việc đóng cửa đó. Gán nó vào $.fn.myplugin.Constructor
chỉ đơn giản là làm cho nhà xây dựng mà tiếp cận với mã khác, cho phép bạn có quyền kiểm soát tiên tiến nếu necesary
var myAlert = new $.fn.alert.Constructor('Hello World'); // or something
Bây giờ bạn có thể một cái gì đó như thế này thay vì:
$.fn.alert.Alert = Alert;
Đây là, chủ quan, xấu xí và dư thừa. Và bây giờ bạn sẽ phải dịch hoặc đoán tên thuộc tính dẫn đến hàm tạo. Nếu bạn nói mỗi plugin được triển khai với một lớp duy nhất và mỗi hàm tạo lớp có thể được tìm thấy tại $.fn.myplugin.Constructor
thì bạn có giao diện nhất quán để truy cập các lớp đằng sau mỗi plugin.
Vì vậy, một lần nữa, đây chỉ là quy ước, không có gì quá đặc biệt về nó.
Nguồn
2012-05-10 00:44:03