成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JavaScript函數(shù)整理成類的原因有哪些

這篇文章主要講解了“JavaScript函數(shù)整理成類的原因有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JavaScript函數(shù)整理成類的原因有哪些”吧!

創(chuàng)新互聯(lián)是專業(yè)的綠園網(wǎng)站建設(shè)公司,綠園接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行綠園網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

JavaScript中類的快速入門

JavaScript中的類是一種函數(shù),正常情況下,您會這么寫:

function catName(){    console.log("Tibbers"); }

也可以用箭頭表示法:

catName = () =>console.log("Tibbers");

這么做當(dāng)然沒有問題,但如果你有一堆與貓相關(guān)的函數(shù),并想將它們附加到某個實例上呢?如果想操作時不需找出并告知代碼具體實例目標(biāo),又該怎么做呢?

這就是“類”派上用場的地方。

類通常有兩部分:屬性(attributes)和方法(methods)。屬性定義類的特定實例值。方法對這些屬性執(zhí)行特定操作。屬性在構(gòu)造函數(shù)中設(shè)置,方法通常以函數(shù)的形式出現(xiàn)在類中。

因此,“類”可能如下所示:

class Cat{   constructor(name, age, sound){         this.name = name;       this.age = age;       this.sound = sound;   } speak = () => console.log(this.sound);  name = () => console.log('hello, my nameis ' + this.name);  age = () =>console.log('I am ' + this.age); }

這基本囊括了JavaScript中80%的類。另外20%涉及擴展和構(gòu)造類的不同方法,這超出了本文的討論范圍。我們試圖回答的問題是——為何應(yīng)將函數(shù)整理成類,而非僅將其作為獨立代碼。

有組織性的函數(shù)更實用

函數(shù)的目的是為代碼創(chuàng)建范圍和邊界。當(dāng)您編寫函數(shù)時,實際上是在對解釋器說——嘿,我想要打包使用一些東西。編寫類的過程實質(zhì)上是在為你的代碼創(chuàng)建另一層次的組織。

高效實用的代碼取決于用戶用編程語言組織和傳達思想的能力。而由于JavaScript編程語言的組織松散,代碼容易陷入混亂無序狀態(tài)。用戶可以通過多種方式編寫相同的內(nèi)容,代碼仍起作用。

所以將函數(shù)整理成類的問題其實是一個組織問題。函數(shù)是一種組織方法,類正好使它進一步發(fā)展。

防止突變

有一個誤解,當(dāng)您想保護變量不受突變影響時,需要阻止其更改。

然而,變異與變量的形狀有關(guān),而非實際變量本身。變量的值可以更改,而形狀不能。

例如,查看以下對象:

Tibbers = { name:"Tibbers", type: "cat", color: "ginger" }

當(dāng)前形式的對象不受突變保護,因為你可以這樣做:

Tibbers.owner = "Aphinya";

通過添加另一個密鑰對值,可以更改對象的形狀。但是,如果使用類將對象Tibbers實例化,則可以防止這種情況。你可以嘗試傳遞一個新值,但它不會起任何作用。

為何防止突變?nèi)绱酥匾?當(dāng)數(shù)據(jù)的形狀無法更改時,它將在代碼的函數(shù)上產(chǎn)生高度的確定性——使其在方法上更具功能性,并減少了在其他地方使用該對象時潛在的副作用。

一切基于對象

JavaScript是基于原型的思想構(gòu)建的。這意味著您的代碼以單個全局作用域開始,該作用域分解為更小的環(huán)網(wǎng)作用域,也可以分解為更小的作用域。圖表形式如下所示:

JavaScript函數(shù)整理成類的原因有哪些

屬性從父級繼承到子級

因此,當(dāng)位于鏈下游的某個對象想要某物時,它會向其父對象索要。如果父級沒有,則該進程將繼續(xù)沿鏈向上運行,直到找到或返回未定義的進程為止。

獨立函數(shù)則沒有這種能力,因為它沒有遍歷屬性的鏈。函數(shù)本質(zhì)上位于窗口對象上,只能訪問全局作用域。

為什么不將所有內(nèi)容都設(shè)置為全局范圍?

由于您不需要遍歷所有的值,一旦用JavaScript聲明了全局作用域,大多數(shù)情況下它不會消失。如果附加到該變量的數(shù)據(jù)相當(dāng)大,則會由于內(nèi)存空間不足而降低應(yīng)用程序的速度和高效處理事物的能力。

將函數(shù)容器化、模塊化

任何東西都有可能模塊化。實用模塊化與邏輯推理和特定想法的緊密程度有關(guān)。任何人都可以說其代碼是模塊化的。你可以把你的代碼放在一個函數(shù)里,然后指出它的模塊化特征。

然而,當(dāng)使用“類”時,您將系統(tǒng)地使用強制結(jié)構(gòu)和內(nèi)聚思想來處理模塊化。從本質(zhì)上講,您是在對代碼進行容器化并整理其功能,從而實現(xiàn)系列相關(guān)特性。

因為這就是“類”的方法——基于它們所執(zhí)行函數(shù)的集合。

JavaScript面向?qū)ο?/strong>

JavaScript是一種具有動態(tài)類型的多范式語言。多范式意味著它不僅僅局限于單一的意識形態(tài)來構(gòu)建邏輯。

這意味著JavaScript不是純功能,也不是純面向?qū)ο蟆K且环N語言,允許您混合使用并匹配編寫、組織代碼的方法,從而靈活地適應(yīng)邏輯需求和條件。

JavaScript面向?qū)ο蟮脑O(shè)計特性遵循基于原型的方法,這意味著可以使用類進行繼承。JavaScript使用函數(shù)方法和對象構(gòu)造,這意味著將函數(shù)特性和功能整合到類中是以一種相互關(guān)聯(lián)的方式進行邏輯排列和業(yè)務(wù)規(guī)則介紹。

感謝各位的閱讀,以上就是“JavaScript函數(shù)整理成類的原因有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JavaScript函數(shù)整理成類的原因有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

新聞名稱:JavaScript函數(shù)整理成類的原因有哪些
URL網(wǎng)址:http://jinyejixie.com/article40/pddpeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、商城網(wǎng)站網(wǎng)站排名、關(guān)鍵詞優(yōu)化用戶體驗、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

沽源县| 库车县| 竹溪县| 横峰县| 沐川县| 沐川县| 宁海县| 西乌| 黎平县| 丰都县| 瑞昌市| 客服| 钦州市| 汾阳市| 云浮市| 安国市| 成都市| 自贡市| 屏边| 平舆县| 香港 | 资兴市| 尤溪县| 隆子县| 汤阴县| 丽江市| 福海县| 娱乐| 宿迁市| 永康市| 舟山市| 云霄县| 随州市| 剑阁县| 浦县| 玉林市| 上犹县| 新巴尔虎左旗| 兴仁县| 平顶山市| 确山县|