JavaScript 中透過原型與建構函數定義方法的效能影響
在JavaScript 中,存在兩種建立具有公用函數的「類”的方法:使用原型或建構函數。方法 1 透過建構函式將函數指派給實例,而方法 2 利用原型在所有實例之間共用函數。
雖然方法 2 通常被認為更有效率,但剝奪實例的私有實例變數是一個顯著的缺點。然而,方法 1 為每個實例明顯建立的重複函數副本在實務上確實發生了嗎?
來自JsPerf Benchmark 的經驗證據
JsPerf 基準測試表明方法2(原型) )在以下方面確實優於方法1(構造函數)
實際影響
雖然這種差異在基準測試中很明顯,但其在實際應用中的相關性值得懷疑。即使在具有大量物件實例化的場景中(例如,每幀 10,000 個),這種微優化也不太可能緩解效能瓶頸。
建議
如果優化效能至關重要,建議透過原型聲明方法。除此之外,方法 1 提供了更大的靈活性並遵循常見的物件導向程式設計約定。此外,使用下劃線前綴表示的私有屬性(例如 _process())可以增強封裝性並阻止直接修改。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3