我決定需要提高我的javascript編程技能以及我的面向對象技能。我目前正在閱讀一些書籍,但有時很難在沒有看到一些實際案例的情況下理解這個理論。所以,我有一個關於「最佳實踐」的以下場景的理論問題...面向對象的JavaScript最佳實踐問題:我應該如何配置我的對象以下
我想創建一個OO腳本,顯示從服務器檢索到的searchtag記錄列表。我也希望能夠編輯每個searchtag記錄。
目前我與jQuery庫有點幫助程序上這樣做:
我接受來自服務器searchtag記錄的JSON編碼的列表。它看起來像這樣:
[
{ "searchTagName" : "tagOne", "searchTagID" : "1" },
{ "searchTagName" : "tagTwo", "searchTagID" : "2" },
{ "searchTagName" : "tagThree", "searchTagID" : "3" },
etc...
]
我直接轉儲到JSON到jTemplates創建相應的HTML,像這樣:
$("#searchTagList")
.setTemplateElement("template_searchTagList")
.processTemplate(searchTagData);
最後,我希望它是可以修改每個searchtag與編輯 - 所以我在每個html元素上附加了一個預編譯就地編輯方法:
$(".searchTag").editInPlace();
這在程序上效果很好。也許最聰明的事情是單獨離開。 :)但是,爲了爭論,從面向對象的角度來寫這樣的東西的最好方法是什麼。
我應該有一個單獨的對象「searchTagList」,它具有上述每個步驟的方法嗎?
var searchTagList =
{
searchTagData: JSONdata,
renderList: function() { /*send to jTemplates */ }
bindEdit: function() { /* attach edit-in-place */ }
}
或者那是不正確的? (看來我所做的只是將程序功能包裝在一個對象中。)我是否應該將JSON數據解析爲每個searchtag的實例,然後將各個方法附加到每個searchtag? (這看起來像是一個很大的開銷,沒有增益。)
如果我好像在挑毛髮一樣,事先道歉。但我真的很想把這些東西放在我的腦海裏。
感謝,
特拉維斯
感謝您的回覆。我應該澄清。當我的意思是程序性的,我的意思是我在全球空間中有三種不同的功能。一個來處理從服務器檢索JSON。一個將JSON轉換爲html。還有一個最終的功能是將一個編輯就地方法附加到html節點上。確實,這些函數中的每一個都在內部使用OO jQuery技術。但我更關心組織三個更高層次的功能的最佳方式,它們目前看起來非常程序化 - 即它們是否應該全部包裹在一個對象中。我會看看YUI3,謝謝。 – Travis 2010-02-15 20:18:58