国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript重構技巧 — 對象和值

開發 前端
JavaScript 是一種易于學習的編程語言,編寫運行并執行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。在本文中,我們將介紹一些優化 JS 類和對象的重構思路。

JavaScript 是一種易于學習的編程語言,編寫運行并執行某些操作的程序很容易。然而,要編寫一段干凈的JavaScript 代碼是很困難的。

在本文中,我們將介紹一些優化 JS 類和對象的重構思路。

[[329438]]

用常量來表示數字

如果我們有很多重復的值且表示一樣的含義,但沒有明確地說明,那么我們應該將它們轉換為常量,以便每個人都知道它們的含義,并且如果需要更改,我們只需更改一個地方就行了。

例如我們可能會這樣寫代碼:

  1. const getWeight = (mass) => mass * 9.81 
  2. const potentialEnergy = (mass, height) => mass * height * 9.81 

對于含義相同的數學我可以用常量表示:

  1. const GRAVITATIONAL_CONSTANT = 9.81; 
  2. const getWeight = (mass) => mass * GRAVITATIONAL_CONSTANT 
  3. const potentialEnergy = (mass, height) => mass * height * GRAVITATIONAL_CONSTANT 

現在我們知道9.81實際上意味著GRAVITATIONAL_CONSTANT,我們不必重復自己。

上面我們用常量 GRAVITATIONAL_CONSTANT 表示 9.81 ,這樣別人一看就知道它表示是萬有引力常數常量。

封裝字段

我們可以將getter和setter添加到類的字段中,這樣就不心直接對類的字段進行操作。

例如我們可能會這樣寫代碼:

  1. class Person { 
  2.   constructor(name) { 
  3.     this.name = name; 
  4.   } 

如果要控制如何設置值,可以這樣重構:

  1. class Person { 
  2.   constructor(name) { 
  3.     this._name = name 
  4.   } 
  5.  
  6.   get name() { 
  7.     return this._name 
  8.   } 
  9.  
  10.   set name() { 
  11.     this._name = name 
  12.   } 

這樣,我們就可以控制如何設置值,因為我們可以在setter中放入代碼來設置名稱。我們還可以控制誰能獲得名稱,因為它是在getter中返回的。

用數組類代替字段

我們可以將字段替換為其自己的數據類,這樣在記錄數據中會有更強靈活性。

例如我們可能會這樣寫代碼:

  1. class Person { 
  2.   constructor(name, bloodGroup) { 
  3.     this.name = name; 
  4.     this.bloodGroup = bloodGroup; 
  5.   } 
  6. const person = new Person('joe', 'a') 

如果我們想擴充 bloodGroup (血型)的種類,我們可以把 bloodGroup 重構成一個類。

  1. class BloodGroup { 
  2.   constructor(name) { 
  3.     this.bloodGroup = name
  4.   } 
  5. class Person { 
  6.   constructor(name, bloodGroup) { 
  7.     this.name = name; 
  8.     this.bloodGroup = bloodGroup; 
  9.   } 
  10. const bloodGroup = new BloodGroup('a'); 
  11. const person = new Person('joe', bloodGroup) 

這樣,我們就可以在bloodGroup字段中存儲更多種類的數據。

用狀態/策略替換類型代碼

有時,我們可以根據對象的類型創建子類,而不是在類中使用類型字段。這樣,我們就可以在它們自己的子類中擁有兩個類不共享的更多成員。

例如我們可能會這樣寫代碼:

  1. class Animal { 
  2.   constructor (type) { 
  3.     this.type = type 
  4.   } 
  5.  
  6. const cat = new Animal('cat') 
  7. const dog = new Animal('dog') 

我們可以根據 type 類型來重構對應的類:

  1. class Animal { 
  2.   //... 
  3. class Cat extends Animal { 
  4.   //... 
  5. class Dog extends Animal { 
  6.   //... 
  7. const cat = new Cat(); 
  8. const dog = new Dog(); 

在上面的示例中,我們單獨編寫一個Animal類,而另外添加Cat和Dog類,它們是Animal類的子類。

這樣我們可以 Cat 和 Dog 類中共享的屬性保存在各自的類的,把共享的放在 Animal 類中。

分解條件表達式

我們可以將長的條件表達式分解為更小的條件表達式。

例如我們可能會這樣寫代碼:

  1. let ieIEMac = navigator.userAgent.toLowerCase().includes("mac") && navigator.userAgent.toLowerCase().includes("ie") 

我們可以這樣重構它:

  1. let userAgent = navigator.userAgent.toLowerCase(); 
  2. let isMac = userAgent.includes("mac"); 
  3. let isIE = userAgent.toLowerCase().includes("ie"); 
  4. let isMacisMacIE = isMac && isIE; 

我們將冗長又難懂的條件表達式分解多個短小表達式,這樣會大大滴增加閱讀性。

總結

如果我們有很多重復的值且表示一樣的含義,但沒有明確地說明,那么我們應該將它們轉換為常量,以便每個人都知道它們的含義,并且如果需要更改,我們只需更改一個地方就行了。

為了更好控制類的屬性,我們可以為它添加getter和setter方法。

如果我們有type字段,則可以用它們自己的子類替換它們。

最后,我們可以將長條件表達式分解為較小的條件表達式,以便于閱讀和理解。

本文轉載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉載本文請聯系大遷世界公眾號。

 

責任編輯:趙寧寧 來源: 大遷世界
相關推薦

2020-06-10 08:37:21

JavaScript重構技巧

2020-06-08 08:46:59

JavaScript條件類名

2020-06-01 08:42:11

JavaScript重構函數

2020-05-27 09:30:52

JavaScript重構函數

2011-06-09 15:27:01

JavaScript

2021-05-11 10:36:16

JavaScript原始值對象

2010-10-08 09:42:23

JavaScript方

2011-06-03 13:48:18

JavaScript重構

2023-10-16 07:55:15

JavaScript對象技巧

2010-01-06 10:58:06

建立JavaScrip

2020-07-28 08:14:30

JavaScript開發技術

2022-11-28 23:48:06

JavaScript編程語言技巧

2025-09-10 08:23:11

代碼重構技巧

2017-03-06 20:39:41

整潔代碼Clean Code

2023-07-24 07:11:43

2023-09-05 08:00:00

開源GreptimeDB

2025-02-13 12:52:27

JavaScrip代碼開發

2020-12-17 07:52:38

JavaScript

2022-05-30 09:44:11

TypeScriptJavaScript技巧

2009-06-10 22:07:59

JavaScriptdocument對象window對象
點贊
收藏

51CTO技術棧公眾號

久久免费av| 国产在线网站| 日韩成人精品一区| 亚洲国产精彩中文乱码av| 香蕉521av成人网| 久久综合五月| 国产欧美一区二区三区在线| 少妇淫片在线影院| 色综合久久66| 成人综合网址| 成人h动漫精品| 国产91亚洲精品一区二区三区| 福利精品在线| 欧美一二三区在线| 91日韩久久| 欧美午夜不卡影院在线观看完整版免费 | 91精品免费在线观看| 国产老熟妇精品观看| 综合色天天鬼久久鬼色| 男女超爽视频免费播放| 国产精品一二| 色一情一乱一乱一91av| 污污视频网站免费观看| 国产精品18久久久久久vr| 日韩av在线不卡| h视频在线观看免费| 亚洲综合激情另类小说区| 亚洲色图久久久| 久久久精品一品道一区| 欧美三级一级片| 国产成人在线色| 中文字幕色呦呦| 国产自产v一区二区三区c| 亚洲精品成人a8198a| 蜜乳av另类精品一区二区| 美脚丝袜一区二区三区在线观看| 99久精品视频在线观看视频| 国产精品自产拍在线观看| 亚洲国产欧美日韩在线观看第一区 | 欧美一区二区私人影院日本| 免费在线黄色电影| 一本色道**综合亚洲精品蜜桃冫| 国产1区2区3区| 亚洲综合网站在线观看| 3dmax动漫人物在线看| 亚洲精品高清在线观看| 国产成人亚洲精品无码h在线 | 国产美女91呻吟求| 欧美午夜精彩| 91精品综合久久久久久五月天| 日韩欧美高清在线播放| 亚洲一区美女视频在线观看免费| 自拍日韩欧美| 国产一区免费在线| 免费观看在线综合| 国产一二三四五| 久久久久久亚洲综合| 天天摸天天碰天天添| 亚洲无毛电影| 色综合电影网| 不卡区在线中文字幕| 久久久久久五月天久久久久久久久| 欧美日韩高清在线| 亚洲欧美综合久久久久久v动漫| 国产成人精品视频在线| 老司机午夜精品视频| 免费无码国产v片在线观看| 亚洲第一在线综合网站| 91超碰免费在线| 日本一区二区不卡| 久久se精品一区二区| 黄色一级影院| 日韩精品在线观| 波多野结衣在线观看一区二区三区| 日本一区二区三区精品视频| 国产亚洲制服色| 成年人网站在线| 日本视频久久久| 国产精品亚洲第一区在线暖暖韩国| 黄动漫视频高清在线| 亚洲欧美综合图区| 日韩欧美视频专区| 九九爱精品视频| 91精品国产综合久久久久| 欧美国产极品| 国产一二三在线视频| 91精品久久久久久蜜臀| 欧美极品在线观看| 日韩人妻无码精品久久久不卡| 在线亚洲+欧美+日本专区| 精品国产导航| 欧美激情视频免费看| 日韩一区二区免费视频| 日韩精品免费| 亚洲黄色a v| 一区二区中文字幕| 免费视频最近日韩| 欧美尤物美女在线| 国产日韩欧美在线播放| 久久综合九色综合欧美就去吻| 麻豆网站在线| 成人免费观看a| 成人av在线资源网| 日本三级在线观看网站| 99精品99久久久久久宅男| 亚洲日本中文字幕区| 午夜影院在线观看国产主播| 国产精品污www一区二区三区| 久久久蜜桃精品| 888av在线视频| 91视频网页| 国产成人高清视频| 牛牛电影国产一区二区| 国产精品久久久久久久久男| 久久69国产一区二区蜜臀| 在线免费观看色| 欧美激情精品久久久久久蜜臀 | 久久久国产欧美| 亚洲成人精品久久久| 99久久影视| 无码精品a∨在线观看中文| 精品国产百合女同互慰| 99精品电影| 九九99九九精彩| 日韩中文字幕视频| 国产精久久久| 在线免费观看你懂的| 91小视频在线| 日韩伦理视频| 日本夜爽爽一二区| 欧美午夜精品久久久久久久| 热久久久久久| 裸模一区二区三区免费| 欧美日韩亚洲高清一区二区| 任你躁在线精品免费| 日韩日韩日韩日韩日韩| 亚洲福利精品在线| 99pao成人国产永久免费视频| 理论片播放午夜国外| 日韩精品电影网| 精品一区二区三区在线观看| 免费黄色电影在线观看| 97se视频在线观看| 欧美午夜丰满在线18影院| 欧美独立站高清久久| 在线观看免费污视频| 17婷婷久久www| 国产精品美女久久久久久久久| 亚洲在线资源| 中文字幕无码不卡免费视频| 久久艹在线视频| 波多野结衣中文字幕一区 | caoporen国产精品| 日韩欧美在线字幕| 99久久九九| 色综合888| 91精品久久久久久久久久久久久| 亚洲激情av在线| 999精品视频| 亚洲kkk444kkk在线观看| 亚洲va电影大全| 日韩美女在线视频| 日韩高清不卡一区二区| 538在线观看| 成人在线免费高清视频| 色婷婷综合成人| 国产午夜亚洲精品理论片色戒| 国产亚洲久久| 一本色道久久亚洲综合精品蜜桃| 久久久久亚洲精品| 亚洲日本在线观看| 亚洲精品97| 欧美女优在线| 日韩在线第一区| 亚洲欧美日韩精品久久| 亚洲精品大片www| 欧美精品一级| 惠美惠精品网| 99热免费观看| 国产一区二区香蕉| 亚洲欧洲日韩国产| 欧美国产乱子伦| 88国产精品视频一区二区三区| 国产午夜精品久久久久免费视| 正义之心1992免费观看全集完整版| 欧美成人一区二区三区电影| 一区二区三区四区五区视频在线观看 | 国产精品福利网| 欧美精品久久99| 经典一区二区三区| 日本成人中文| av免费在线一区二区三区| 亚洲精品二区| 久久精品最新地址| 欧美日韩久久久一区| 国产精品乡下勾搭老头1| 青草久久视频| 免费黄色在线| 免费男同深夜夜行网站| 欧美一区二区福利|