[英]Javascript - How to implement override-able lifecycle hooks
我正在創建一個我希望擴展的類。 此類允許使用可覆蓋的生命周期掛鈎(類似於React.js組件)來自定義功能。 在基類中,這些方法不起作用。
編碼的“正確”方法是什么?
我是否應該在基類中不實現這些並檢查方法是否存在,例如:
class BaseClass {
//...
runLifeCycle() {
if (this.lifeCycleMethodA) this.lifeCycleMethodA()
}
//...
}
還是應該在基類中將它們實現為空函數?
class BaseClass {
//...
runLifeCycle() {
this.lifeCycleMethodA()
}
lifeCycleMethodA() {
// empty block
}
//...
}
什么是更清潔的方法?
這完全取決於您,沒有“正確”的方法。 一些輸入:
如果您希望子類方法不調用基類方法(與React的生命周期方法一樣),則最好不使用它們。
如果希望子類方法調用基類方法,則提供子類方法會使子類更簡單(它們不需要保護)。
如果您希望基類經常直接使用而不是子類使用,則為它們提供無操作行為會使代碼調用方法更簡單(它不需要保護)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.