您好,登錄后才能下訂單哦!
這篇文章主要講解了“JavaScript對象重構方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript對象重構方法是什么”吧!
如果我們有很多重復的值且表示一樣的含義,但沒有明確地說明,那么我們應該將它們轉換為常量,以便每個人都知道它們的含義,并且如果需要更改,我們只需更改一個地方就行了。
例如我們可能會這樣寫代碼:
const getWeight = (mass) => mass * 9.81 const potentialEnergy = (mass, height) => mass * height * 9.81
對于含義相同的數學我可以用常量表示:
const GRAVITATIONAL_CONSTANT = 9.81; const getWeight = (mass) => mass * GRAVITATIONAL_CONSTANT const potentialEnergy = (mass, height) => mass * height * GRAVITATIONAL_CONSTANT
現在我們知道9.81實際上意味著GRAVITATIONAL_CONSTANT,我們不必重復自己。
上面我們用常量 GRAVITATIONAL_CONSTANT 表示 9.81 ,這樣別人一看就知道它表示是萬有引力常數常量。
我們可以將getter和setter添加到類的字段中,這樣就不心直接對類的字段進行操作。
例如我們可能會這樣寫代碼:
class Person { constructor(name) { this.name = name; } }
如果要控制如何設置值,可以這樣重構:
class Person { constructor(name) { this._name = name } get name() { return this._name } set name() { this._name = name } }
這樣,我們就可以控制如何設置值,因為我們可以在setter中放入代碼來設置名稱。我們還可以控制誰能獲得名稱,因為它是在getter中返回的。
我們可以將字段替換為其自己的數據類,這樣在記錄數據中會有更強靈活性。
例如我們可能會這樣寫代碼:
class Person { constructor(name, bloodGroup) { this.name = name; this.bloodGroup = bloodGroup; } } const person = new Person('joe', 'a')
如果我們想擴充 bloodGroup (血型)的種類,我們可以把 bloodGroup 重構成一個類。
class BloodGroup { constructor(name) { this.bloodGroup = name; } } class Person { constructor(name, bloodGroup) { this.name = name; this.bloodGroup = bloodGroup; } } const bloodGroup = new BloodGroup('a'); const person = new Person('joe', bloodGroup)
這樣,我們就可以在bloodGroup字段中存儲更多種類的數據。
有時,我們可以根據對象的類型創建子類,而不是在類中使用類型字段。這樣,我們就可以在它們自己的子類中擁有兩個類不共享的更多成員。
例如我們可能會這樣寫代碼:
class Animal { constructor (type) { this.type = type } } const cat = new Animal('cat') const dog = new Animal('dog')
我們可以根據 type 類型來重構對應的類:
class Animal { //... } class Cat extends Animal { //... } class Dog extends Animal { //... } const cat = new Cat(); const dog = new Dog();
在上面的示例中,我們單獨編寫一個Animal類,而另外添加Cat和Dog類,它們是Animal類的子類。
這樣我們可以 Cat 和 Dog 類中共享的屬性保存在各自的類的,把共享的放在 Animal 類中。
我們可以將長的條件表達式分解為更小的條件表達式。
例如我們可能會這樣寫代碼:
let ieIEMac = navigator.userAgent.toLowerCase().includes("mac") && navigator.userAgent.toLowerCase().includes("ie")
我們可以這樣重構它:
let userAgent = navigator.userAgent.toLowerCase();let isMac = userAgent.includes("mac");let isIE = userAgent.toLowerCase().includes("ie");let isMacisMacIE = isMac && isIE;
我們將冗長又難懂的條件表達式分解多個短小表達式,這樣會大大滴增加閱讀性。
感謝各位的閱讀,以上就是“JavaScript對象重構方法是什么”的內容了,經過本文的學習后,相信大家對JavaScript對象重構方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。