Tôi đã quyết định tôi cần cải thiện kỹ năng lập trình javascript cũng như kỹ năng OO của mình. Tôi hiện đang đọc qua một số cuốn sách, nhưng đôi khi rất khó để có được một nắm bắt về lý thuyết mà không nhìn thấy một số ví dụ thực tế đầu tiên. Vì vậy, tôi có câu hỏi lý thuyết về "thực tiễn tốt nhất" cho trường hợp sau ...Câu hỏi thực hành tốt nhất về javascript hướng đối tượng: Tôi nên định cấu hình đối tượng của mình như thế nào sau đây
Tôi muốn tạo tập lệnh OO hiển thị danh sách các bản ghi tìm kiếm được truy xuất từ máy chủ. Tôi cũng muốn có thể chỉnh sửa từng bản ghi thẻ tìm kiếm tại chỗ.
Hiện nay tôi đang làm điều này procedurally với một chút giúp đỡ từ các thư viện jQuery:
Tôi chấp nhận một danh sách JSON-mã hóa các hồ sơ searchtag từ máy chủ. Nó trông giống như thế này:
[
{ "searchTagName" : "tagOne", "searchTagID" : "1" },
{ "searchTagName" : "tagTwo", "searchTagID" : "2" },
{ "searchTagName" : "tagThree", "searchTagID" : "3" },
etc...
]
tôi đổ JSON trực tiếp vào jTemplates để tạo ra html thích hợp, như vậy:
$("#searchTagList")
.setTemplateElement("template_searchTagList")
.processTemplate(searchTagData);
Cuối cùng tôi muốn nó có thể sửa đổi mỗi searchtag với một Edit- phương pháp tại chỗ, vì vậy tôi đính kèm phương pháp chỉnh sửa tại chỗ cho mỗi phần tử html:
$(".searchTag").editInPlace();
Điều này hoạt động rất tốt về mặt thủ tục. Và có lẽ điều thông minh nhất là để lại đủ một mình. :) Nhưng, vì lợi ích của đối số, cách tốt nhất để viết một cái gì đó như thế này từ một quan điểm OO là gì.
Tôi có nên có một đối tượng "searchTagList" có phương pháp cho từng bước được thảo luận ở trên không?
var searchTagList =
{
searchTagData: JSONdata,
renderList: function() { /*send to jTemplates */ }
bindEdit: function() { /* attach edit-in-place */ }
}
Hoặc điều đó có đúng không? (Có vẻ như tất cả những gì tôi đang làm là gói các hàm thủ tục của tôi trong một đối tượng.) Tôi có nên phân tích cú pháp dữ liệu JSON thành các cá thể của mỗi thẻ tìm kiếm không, sau đó gắn các phương thức riêng lẻ vào mỗi thẻ tìm kiếm? (Điều này có vẻ như rất nhiều chi phí, vì không đạt được.)
Xin lỗi trước nếu có vẻ như tôi đang chọn lông. Nhưng tôi thực sự muốn có được thứ này ngay trong đầu mình.
Cảm ơn,
Travis
Cảm ơn bạn đã trả lời. Tôi nên làm rõ. Khi tôi có nghĩa là thủ tục, tôi có nghĩa là tôi có 3 chức năng riêng biệt trong không gian toàn cầu. Một để xử lý truy xuất JSON từ máy chủ. Một để chuyển đổi JSON sang html. Và một chức năng cuối cùng để đính kèm một chỉnh sửa tại chỗ phương pháp để các nút html. Đúng là mỗi hàm trong số đó sử dụng các kỹ thuật jQuery của OO trong nội bộ. Nhưng tôi quan tâm nhiều hơn về cách tốt nhất để tổ chức ba hàm mức cao hơn, mà hiện tại trông rất thủ tục - tức là tất cả chúng nên được gói lại với nhau trong một đối tượng. Tôi sẽ xem xét YUI3, cảm ơn. – Travis