javaScript的面向?qū)ο蠛蛡鹘y(tǒng)的面向?qū)ο蟛惶粯樱琷avascript是基于原型實現(xiàn)的,也就是每一個構(gòu)造函數(shù)都有一個prototype屬性指向一個原型對象,里面可以放公共的屬性和方法,而構(gòu)造函數(shù)的實例對象都有__proto__屬性指向這個原型對象,而es6中的class寫法也是基于原型的
為大余等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及大余網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、成都網(wǎng)站建設、大余網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
javascript是面向過程的,因為是解釋性預言,按照頁面加載一行一行的執(zhí)行,但是可以模擬面向?qū)ο蟮拇a寫法
面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài)
基于封裝,引出了js如何創(chuàng)建對象(class、function、原型+閉包創(chuàng)建私有變量等)。這個java和js都差不多
基于繼承,引出了js繼承的一些知識點,如extends、super、重寫重載、abstract(typescript)、interface(typescript)。js主要是基于原型繼承,而java主要是基于extends
多態(tài)存在的三個必要條件。重寫(繼承)、重載、向上轉(zhuǎn)型:其中重寫,js支持。重載js不支持,可以通過額外處理來支持向上轉(zhuǎn)型,因為js是弱類型語言,不支持數(shù)據(jù)類型,ts支持(編譯階段)
也就是說對于多態(tài)的支持,目前js只支持一種。
總的來說 js的面向?qū)ο笾С诌€沒有java語言那么豐富嚴謹,正是因為這些寬松語法,也讓js變得更加有趣。但是面向?qū)ο髈op的思想是一致的。因為oop思想不是固定語言的特性,而是一種思想。隨著js不斷的更新迭代,相信其語法特性也更加豐富和嚴謹。
后話:js目前的發(fā)展趨勢,好像不在跟隨傳統(tǒng)語言的oop,有點往函數(shù)式編程的路上轉(zhuǎn)向
是的,js是基于對象的,連他的function函數(shù)都是一種對象。所以是面向?qū)ο蟮模?/p>
我需要吃飯
面向過程:買菜,煮法,炒菜——吃飯
面向?qū)ο螅河喭赓u——吃飯
由上例子,面向過程需要我們分析每個步驟的實現(xiàn);而面向?qū)ο髣t是只需要持有某個對象,然后使用它即可。
采用oop(面向?qū)ο缶幊趟枷耄?,可以讓提高代碼復用性,程序擴展和維護性提高,而且可以降低耦合性,使得程序更加靈活,更加易于維護。
如果滿意,望采納,謝謝!