這里是丁哥開講,作為一名從事20多年軟件開發的資深程序員,我來說一下我的體會。
前端開發當然可以使用面向對象編程概念。在這個基礎上我在著重強調一下,面向對象編程,不僅對前端非常有用,對后端當然也是非常有用的。我們這個問題就專門針對前端來談一談。
前端我們關注的是界面的設計。那么一個界面之中會分為幾個區域,每個區域里面又分為幾個子區域。這些大大小小的區域我們都可以定義為一個對象,俗稱組件。這些組件可能會有一些共性,比如說都會有初始化函數和釋放函數。那么我們就可以把這些共性的方法放到一個基本組件里面,俗稱基類。
基本組件可以定義為抽象的組件也可以定義為實際使用的組件。基本的方法也可以手工調用也可以靠整個架構來進行自動的調用。如果你用過angular,vue,react這些架構的話,我相信你知道我在說什么。
除了組件的設計和定義以外,在前端也需要定義一些非界面性的類,或者其他的邏輯單元,這些非界面的類和邏輯單元,用來存儲前端的數據和邏輯計算。如果對這一部分使用面向對象變成概念的話,會降低程序的復雜度,增加程序的可維護性和可擴展性。
如果你使用typescript,這樣的面向對象編程語言來開發前端的話,那自然的,你已經有面向對象編程的概念了。這門語言是Javacript的超集。如果你有面向對象編程的經驗,學習學好這門語言根本不在話下。
即使你在使用JavaScript,你也可以通過函數的方法來定義原型基類,然后通過在擴展的函數里面定義擴展原型,這樣你新的函數既可以享有原有函數的所有方法也可以添加上新的功能實現這實際上就是父類和子類的一個概念。
實際上所有的typescript代碼,最后在運行的時候都需要編譯成JavaScript。
也就是說所有的typeacript面向對象的編程方法,在編譯后的JavaScript,你都可以找到對應的例子。
說完了JavaScript相關的知識,再來說一下前端開發離不開的樣式語言。現在比較流行的樣式語言是sass家族,諸如less,scss。他們最終都會編譯成傳統的CSS語言。所不同的是這些流行的樣式語言提供了面向對象的編程概念。在寫這些樣式語言的時候,可以像面向對象語言一樣使用基本的類,擴展的類,基本的函數和擴展的函數。與此同時,這些新的樣式語言都支持數結構。那么數結構本身就有子節點,父節點的概念。這是文檔模型DOM本身的對應關系。
這一步也就引申到了html語言本身。這門標記語言自身作為一棵樹存在。通過這棵樹你可以追溯到你想要的那一部分內容。這個過程本身就是把整個文檔作為一個樹對象來進行操作的。
好了,以上是我作為一名資深程序員的個人見解,請在下方留言告訴我你的想法,我們可以繼續探討,感謝關注丁哥開講我們下次再見。