var Treasure = function(){
function locate(){
return this.x * this.y + 31337;
}
function Treasure(x, y){
this.x = x;
this.y = y;
}
Treasure.prototype.find = function find(){
return locate.call(this);
};
return Treasure;
}();
locate
là một chức năng riêng được chia sẻ cho các phương thức khởi tạo và nguyên mẫu. Sử dụng call
nó có thể hoạt động như một phương pháp và sử dụng this
.
Triển khai hoàn chỉnh hơn khái niệm này là đối tượng giao diện và đối tượng triển khai. Thay vì có một vài hàm ngẫu nhiên-như-phương thức (tương tự như định vị ở trên), bạn thực sự tạo ra một lớp toàn bộ là riêng tư. Mọi tạo ra bên ngoài của giao diện kết quả trong hai đối tượng crated: giao diện shell công cộng và đối tượng thực hiện riêng tư. Điều này cho phép bạn hiển thị giao diện cung cấp một API khác, có lẽ dễ sử dụng hơn. Hoặc có thể cho phép bạn sử dụng lại các đối tượng thực hiện riêng lẻ cho toàn bộ các nhóm đối tượng giao diện.
Đây thực sự là cách DOM được chỉ định để hoạt động (thường không được triển khai trong js). Ví dụ, các đối tượng giao diện (ví dụ như các phần tử và các đối tượng nút) được yêu cầu cụ thể để bao bọc việc triển khai cơ bản thực sự thực hiện từ đó. Các đối tượng tiếp xúc nhỏ hơn nhiều so với các shell để chuyển tiếp truy cập thuộc tính và lời gọi phương thức.
Dom.js là một triển khai DOM toàn diện được thực hiện trong giây. Một kỹ thuật thú vị mà tôi đã làm quen với khi làm việc trong đó là việc tạo ra các giao diện công cộng hoàn toàn tự động. Đây là mục đích của IDL: API công khai được tạo theo nghĩa đen một cách tự động, chỉ để thực hiện riêng tư thực sự được tạo ra. Điều này thực sự có nghĩa là có thể tạo ra những thứ như thế này mà không cần tham khảo ý kiến của con người: https://github.com/Benvie/svgstuff/blob/master/lib/defs.js
Nguồn
2012-07-04 08:10:23
+1 cho liên kết đến một trang Ứng dụng ebook! cảm ơn.. – renatoargh