JavaScript物件導向程式設計(1): 前言

來源:互聯網
上載者:User
基於對象還是物件導向? 物件導向技術是現代軟體開發中的重要技術之一。物件導向變成的好處毋庸置疑,現在的主流語言如Java、C++都是物件導向的。現在的物件導向理論更多的是使用Java或C++進行描述,究其根源,在於這些語言都是傳統的物件導向語言,具有物件導向理論所指明的一切特性:類、封裝、繼承、多態等等。 相比而言,一些動態語言如JavaSript就顯得不那麼物件導向——至少,在JavaScript中並沒有類class這一關鍵字。但是,在JavaScript中並不是沒有類的概念。於是有人說,JavaScript是基於對象的語言,而不是物件導向的語言。 物件導向的語言具有三個特性:封裝、繼承和多態,三者缺一不可;基於對象的語言通常僅僅是使用對象,其實現的是封裝,並沒有提供後兩種特性。的確,從文法上來說,JavaScript並沒有特定的文法或者在語言層級上來實現繼承和多態。但是,這並不妨礙我們使用這些特性。這是因為,JavaScript是一種靈活的語言,它是相當的靈活,以至於這些並沒有提供的東西,更確切的說,是沒有明確的表明的東西,都是可以實現和使用的!那麼,你還能說JavaScript是基於對象而不是物件導向的嗎? 物件導向也是一種思想,任何語言,包括C語言,同樣可以使用物件導向的思想去解決現實生活中的各種問題。到底是基於對象還是物件導向,這些概念讓電腦哲學家門去爭論吧——相信他們的爭論最終也會和先有雞還是先有蛋的問題一樣的結果——我們所要做的,是要使用這種語言提供的機制去解決我們的問題。  為什麼要有JavaScript的物件導向編程? 這個問題很嚴肅——這取決你問題的規模和應用的範圍。就像JavaEE和PHP一樣:PHP能實現的東西,JavaEE都能實現,那麼,為什麼還要有PHP?因為JavaEE太複雜了,對於一些簡單的系統,根本沒有必要是使用它,也就是所謂的“殺雞焉用牛刀”。 JavaScript主要應用於Web開發中。在傳統的Web開發模式中,JavaScript起到的是一些點綴的作用,只完成很有限的功能,例如表單驗證等。於是,JavaScript多被當做一種過程性語言使用,很難完成複雜的功能。而今天Web2.0的時代,Ajax大行其道,很多複雜的指令碼成為其必須的組成部分。在Ajax應用中利用JavaScript物件導向編程風格,能夠使邏輯更加清晰,也更有利於問題的解決。 如果你想用JavaScript編寫一個庫,比如ExtJS或者YUI,很難想象你的類庫不使用物件導向的編程風格——否則的話,無論是對你還是對使用者的智力都將是一個前所未有的考驗!或許,自從物件導向思想提出之後,已經很難有類庫不使用物件導向的方式實現了,即便是C語言的庫諸如gtk+,也是用C語言將物件導向的思想表現的天衣無縫。物件導向的思想對於大型程式的編寫和使用具有不可替代的作用。 本系列文章將試圖向讀者闡述JavaScript的物件導向程式設計。儘管JavaScript中具有很多瀏覽器相關的概念,如document等內建對象,但是本系列將不涉及這些問題,並且將假設讀者已經有JavaScript基礎的文法知識等。本系列文章不會從頭開始講述JavaScript的文法,僅僅從純粹的物件導向角度審視JavaScript,或許,你將會看到一個教程:物件導向程式設計——JavaScript語言描述。這才是本系列文章的目的。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.