在JavaScript 中透過原型與建構函數定義方法的效能影響
在JavaScript 中,存在兩種使用公用函數建立「類別”的方法:使用原型或建構函數。方法 1 透過建構函式將函數指派給實例,而方法 2 利用原型在所有實例之間共用函數。
雖然方法 2 通常被認為更有效率,但剝奪實例的私有實例變數是一個顯著的缺點。然而,方法 1 為每個實例明顯創建重複的函數副本在實踐中真的發生了嗎?
來自 JsPerf Benchmark 的經驗證據
JsPerf 基準測試顯示方法 2(原型) )在速度方面確實優於方法 1(構造函數)。
實際效果
雖然這種差異在基準測試中很明顯,但其在實際應用中的相關性值得懷疑。即使在具有大量物件實例化的場景中(例如,每幀 10,000 個),這種微優化也不太可能緩解效能瓶頸。
建議
如果最佳化效能至關重要,建議透過原型聲明方法。除此之外,方法 1 提供了更大的靈活性並遵循常見的物件導向程式設計約定。此外,使用下劃線前綴表示的私有屬性(例如 _process())可以增強封裝性並阻止直接修改。
以上是在 JavaScript 中透過建構函數定義方法是否會建立重複的函數副本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!