The future of OO Javascript

來源:互聯網
上載者:User

    大約兩到三個月以來,我一直以OOJS(Object Oriented Javascript)為我的研究方向之一。

在未來的項目中,由於Ajax的應用,我們將有越來越多的Javascript代碼應用進來。面對代碼激增所帶來的問題,我們傳統的解決方案就是OO。Javascript並不是一個很好的OO語言,所以我們有很多的事情要做,就是如何利用Javascript本身的特性,去模仿OO行為,實現OO原則。

《Ajax in action》的流行是一個福音。作為Ajax領域的第一本書,該書很早的提出了將設計模式應用於Ajax應用程式的概念。這就避免我們在Ajax應用的初期重蹈很多覆轍。但是,設計模式需要OO,所以,Javascript需要OO。

很著名的是《Ajax in action》的附錄B,其中談論了幾乎目前所能得到的最全面的OOJS方面的內容。目前,該附錄已經被SUN收錄於它的開發人員網站,你可以通過這裡訪問它:

 

AJAX in Action: Appendix B - JavaScript for Object-Oriented Programmers

 

這篇文章討論了很多Javascript OO方面的問題。儘管它看起來並不完美,但是結論也相當明確。Javascript先天的缺陷導致有些典型的OO行為在Javascript平台上無法內建實現,不得不靠我們人為的能力。

典型的有動態類型識別,原因是瀏覽器支援的不同。我在我的mozilla1.2和1.7平台上均發現不能運行Javascript的instanceof操作符。I don’t know why,因為firefox確實支援的,而且IE也支援的很好。

另外一個是介面(interface),這個在《Ajax in action》的附錄B中有確切答案。

還有一點就是好訊息,總的來說Javascript的prototype繼承使用起來相當靈活,應該可以彌補它在其他方面的不足。

不過我們還是期望Javascript的進步。不知道W3C的ECMAScript有否新的計劃,或者已經在動作?(PS,建議W3C將ECMAScript規範些的再易懂,並且嚴格些。要知道,一致的Javascript對Ajax時代的開發是多麼的美妙!)但是,即便是ECMAScript有新的版本,也要等待各個主流瀏覽器廠商的實現。

在一篇CSS3的預覽(preview)的網站上,我們再次看到了IE在拖後腿。我已經無法表達我們對IE的複雜感情。一方面,它在Web開發領域確實起到了非常大的作用,我現在還在感激它對XML支援的完美。但是,一方面它的某些怪異動作確實讓我們反感。比如,IE上面對“透明度”(opacity)的設定效率非常低下。digg.com因此禁止了在IE下顯示黃褪效果。這也直接導致我在項目中廢止了我們已經實現,並且在firefox下看起來非常完美的黃褪技術。PS,mozilla下面顯示也有問題,我暈!

 

不管怎麼樣,我們所面臨的問題是Javascript代碼確實增多了,變得不太好管理。傳統來講,解決此類問題的方法無非兩種,要麼是採用更好的方法輪,比如OO;要麼就是提升工具的能力。我很貪心,我打算兩個都用。所以,OOJS之路定矣。

我現在就像一個掉入壞人手上的軟弱無力的小姑娘,多麼期望強大、有力的蜘蛛俠出現,讓我脫離苦海。PS,我更喜歡閃電俠Wade。:P

有意思的是,今天剛剛看到一本新書,《FriendsofED.Object.Oriented.ActionScript.For.Flash.8.Feb.2006》。要知道,現在連ActionScript都要OO了,可見世界趨同之勢。好在ActionScript一直掌握在一家廠商裡,所以它可以發展迅速。可問題是現在Javascript世界實在是太亂了。Javascript的未來在哪裡?

真的不想看到大家是如何在一個畸形的架構下,通過各種小竅門去模仿一些偉大的東西。就像我們在利用Javascript的私人變數作用於來模仿私人方法和屬性一樣。就像《The C++ Programming Language Special 3rd Edition》裡面提到的一樣,C++是專門設計來表現物件導向理念的,而不是我們利用C++的各種特點去模仿物件導向。可是,我們還能做什麼呢?

Eric(《Ajax in action》的合著者之一)在其Blog上放出了一篇名為I am interviewed on Sun.com的文章,談到了SUN最近對Ajax和Javascript的關注。SUN最近開辦了JavaScript Resource Center和Ajax Developer Resource Center來服務其開發人員。

值得參考的是SUN對Eric的採訪,Chatting with Eric Pascarello。我看過Eric的書,並在一些問題上請教過他。個人感覺Eric此人功力深厚,其文章值得關注。

PS,Eric還在他的Blog上談到他的下一本書的計劃,期待ing。。。

 

Coofucoo Zhang

Sunday, May 21, 2006

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.