當前位置:首頁 » 編程軟體 » 面向對象編程js

面向對象編程js

發布時間: 2022-10-31 22:30:11

⑴ JS 面向對象

為了能夠清楚的解釋這一切,我先從對象講起。從其他面向對象語言(如java)而來的人可能認為在JS里的對象也是由類來實例化出來的,並且是由屬性和方法組成的。
實際上在JS里並不是如你所想(我開始是這么想的)那樣,對象或直接稱為object,實際上只是一些映射對的集合,像Map,字典等概念。JS里有大概7種類型(加上Symbol),數字、字元串、null、undefined、布爾、Symbol、對象。除對象以外的其他類型屬於原始類型,就是說它們比較單純,包含的東西比較少,基本上就是字面量所表示的那些(像C語言中的一些類型,就是占那麼多空間,沒有其他的東西)。object基本上是一些鍵值對的集合,屬於引用類型,即是有一個名字去指向它來供別人使用的,就好像比較重的東西你拿不動,而只是拿了張記錄東西所在地的紙條。所以當A對象里嵌套了B對象,僅表示A裡面有一個引用指向了B,並不是真正把B包含在A裡面,雖然看起來是這樣(尤其是從對象的字面量上來看),所以才會有所謂的深拷貝與淺拷貝。
有句話叫「JavaScript里一切皆對象」,是因為在很多情況下原始類型會被自動的轉為對象,而函數實際上也是對象,這樣這句話看起來就很有道理了。
說明對象的本質是為了正確地認識對象,因為這關繫到後面的理解。

⑵ 5.JavaScript中使用面向對象編程思想的目的是

我需要吃飯

面向過程:買菜,煮法,炒菜——>吃飯

面向對象:訂外賣——>吃飯

由上例子,面向過程需要我們分析每個步驟的實現;而面向對象則是只需要持有某個對象,然後使用它即可。

採用oop(面向對象編程思想),可以讓提高代碼復用性,程序擴展和維護性提高,而且可以降低耦合性,使得程序更加靈活,更加易於維護。

如果滿意,望採納,謝謝!

⑶ 函數式編程 vs 面向對象編程 vs 過程式編程的JS演示比較

這是一個真實的例子,展示了三種最常見的編程範式的差異。我將用三種不同的方式解決一個問題。

每個示例將處理表單提交、驗證用戶輸入並將創建的用戶列印到控制台。我還添加了保存錯誤記錄器。

案例表單

簡單的 HTML 登錄表單,它將包含三個js不同範式的有效文件。

過程化編程

過程式編程只是一步一步地解決問題。這是完全有效的編碼方式,但是當您希望應用程序擴展時它有許多缺點。

簡單一步一步解決問題。但它根本不可重用和可擴展。盡管它對於解決此類問題完全有效,並且您將看到它比其他問題要短得多。

面向對象編程

面向對象編程 ( OOP ) 是最接近現實世界的,因此很容易讓您思考。我們查看將其劃分為Object的代碼,其中每個都只完成它的工作。在OOP 中學習的有用概念是SOLID。

現在你可以明白我將問題劃分為Objects 的意思了:

正如你所看到的,有更多的代碼,看起來更復雜……那麼為什麼有人會喜歡這個?

酷的是,現在我們可以將它用於任何類似的形式,只需調用:

因此,它可以在包含此腳本的每個文件中重復使用。而且它很容易擴展,因為一切都被分成只做一件事的塊(單一責任原則)。

函數式編程

非常流行,而且非常簡單。請注意,這並不意味著它無論如何都更好。盡管某些範例可能對某些問題更好,但使用哪個完全取決於您。

正如您在 函數式編程 中看到的,我們希望使用小的(理想情況下是純函數)函數來解決問題。這種方法也非常具有可 擴展性 ,並且函數可以重用。

純函數是一種沒有難以追蹤的副作用的函數。純函數應該只依賴於給定的參數。

結論

沒有更好和更壞的範式。有經驗的開發人員可以看到每個的優點,並為給定的問題選擇最好的。

過程式編程並不是說你不能使用函數,函數式編程也不會阻止你使用「類」。這些範式只是幫助以一種隨著代碼增長而有益的方式來解決問題。

函數式編程 vs 面向對象編程 vs 過程式編程的JS演示比較 - DEV

⑷ JavaScript中的「面向對象」和Java語言中的「面向對象」有何不同

面向對象三大特徵:封裝、繼承、多態
基於封裝,引出了js如何創建對象(class、function、原型+閉包創建私有變數等)。這個java和js都差不多
基於繼承,引出了js繼承的一些知識點,如extends、super、重寫重載、abstract(typescript)、interface(typescript)。js主要是基於原型繼承,而java主要是基於extends
多態存在的三個必要條件。重寫(繼承)、重載、向上轉型:其中重寫,js支持。重載js不支持,可以通過額外處理來支持向上轉型,因為js是弱類型語言,不支持數據類型,ts支持(編譯階段)
也就是說對於多態的支持,目前js只支持一種。
總的來說 js的面向對象支持還沒有java語言那麼豐富嚴謹,正是因為這些寬松語法,也讓js變得更加有趣。但是面向對象oop的思想是一致的。因為oop思想不是固定語言的特性,而是一種思想。隨著js不斷的更新迭代,相信其語法特性也更加豐富和嚴謹。
後話:js目前的發展趨勢,好像不在跟隨傳統語言的oop,有點往函數式編程的路上轉向

⑸ 怎麼理解js面向對象編程和模塊化思維

怎麼理解js面向對象編程和模塊化思維
是對象,任何函數都是對象 是閉包,任何被大括弧包立起來的方法都可以看做閉包 對象和閉包不是一回事

⑹ js 什麼是面向對象

面向對象是一種開發方法或者是開發思想,面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。

⑺ js是面向對象的編程語言嗎

是的,js是基於對象的,連他的function函數都是一種對象。所以是面向對象的!

⑻ 如何用面向對象的方法用寫JS

1,html寫好界面,定義好class和id
2,為了模擬出撲克牌21點游戲,應先定義卡牌池中有1-10,J,Q,K每個數字和字母分別有4個
3,js中實現界面交互,如點擊開始按鈕,隨機從卡牌池中抽取一個數字或字母存入臨時變數a,並附於點數之和num其相應的點數
4,點擊抽牌按鈕隨機從卡牌池剩餘的卡牌中抽取,對應的卡牌存入變數a中,點數之和num=num+本次抽卡的點數
5,當num>21時提示玩家爆點,小於21點時可選按鈕抽牌,等於21點時提示恭喜之類的話,如果點擊完成抽牌則記錄此玩家點數
6,同理可擴充玩家至2,3,4....個,原理相同,不同玩家存儲對應的變數就可以了,最終通過所有<=21點的玩家num,num1,num2來判斷輸贏
7,同理可設置莊家,莊家在與其他玩家點數相同時贏得對方
8,在此基礎上就能增添許多功能了,比如每個玩家默認100金幣,有底注,每輪開始的時候可加註,如玩家不跟則底注輸掉無法參加游戲,等等之類的各種規則隨便發揮

⑼ 請問一下js面向對象編程在網頁中什麼情況下才需要用到

比如:做網頁輪播效果。效果是必須滿足可以在不同的HTML(相同的布局方式)、不同的DOM節點或則同個頁面多個輪播效果等。這種時候你就可以考慮封裝一個通用的輪播功能,然後實例化(new)該對象以實現效果。其實,面向對象只是一種在編寫程序中的一種思維方式,然而封裝網頁輪播效果你也可以用面向過程化來解決問題

熱點內容
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:993
ehcache存儲對象 發布:2025-05-15 10:35:31 瀏覽:526
搭建虛擬電腦的伺服器 發布:2025-05-15 10:29:31 瀏覽:269
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:979
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:108
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:616
編寫一個shell腳本添加用戶 發布:2025-05-15 09:54:43 瀏覽:505
資料庫查看錶命令 發布:2025-05-15 09:52:27 瀏覽:914
p30是不是自帶方舟編譯器 發布:2025-05-15 09:51:48 瀏覽:599
追擊世界房間密碼是多少 發布:2025-05-15 09:51:46 瀏覽:995