當我遇到對象和類增強時,我閱讀了一些在線教程並瞭解了在對象增強中,我們不需要有prototype關鍵字來創建變量和方法對象,而在類增強中,我們需要使用prototype關鍵字來爲函數創建變量和方法。幾乎都是一樣的,但我看到的方法是唯一的區別,創建一個對象的變量和方法。我想了解對象增強和類增強的具體原因。javascript中的對象增強和類增強之間的區別
1
A
回答
3
JavaScript中沒有真正的類。它是一種基於OO的語言,但它使用原型繼承來實現這一點。
的一般要點是:
當你增加原型,與原型利益的所有對象,獲得的功能。優點是使用較少的內存,因爲每個人都共享相同的功能對象。使用原型時,模擬基於類的語言也更容易。缺點是擁有任何真正屬於客體的隱私是困難的(但並非不可能)。
當您增加單個對象時,您在構建對象方式上有更大的靈活性。您通常可以通過使用關閉來實現私有狀態。缺點是每個對象都會獲得自己的函數對象副本,從而增加內存使用量。另一個缺點是對象更「特別」,並且用它們創建「類」層次結構更加困難。許多人認爲,創建這些層次往往不是必要的或無用的。
內存問題值得思考。當您創建數千個對象時,這意味着對象方法中有成千上萬個函數對象,而使用原型方法的函數對象數量會少得多。
相關問題
- 1. 服務編排,聚合和服務增強之間的區別
- 2. 增強幾何中的環和多邊形之間有什麼區別?
- 3. 模擬CGLIB增強對象
- 4. 增強Object類
- 5. Javascript中的基本增強類型
- 6. 強和弱IBOutlets之間的區別
- 7. 增強間隔樹
- 8. 對象之間的區別(javascript和jquery)
- 9. R - 整齊增強置信區間
- 10. CGLIB的類生成和增強功能
- 11. bitbucket中增強和建議有什麼區別
- 12. 增強抽象語法樹
- 13. 增強序列化多個對象
- 14. EBean:java.lang.IllegalStateException:Bean類models.User未被增強?
- 15. 無法增強kodo JPA類
- 16. TypeScript:增強內置類型
- 17. Javascript框架和漸進增強
- 18. 類中字段的字節碼增強
- 19. C++中增強向量的子類
- 20. HSV顏色對比增強
- 21. Typescript增強
- 22. 增強算法
- 23. 增強現實
- 24. 增強現實
- 25. 增強forstatement
- 26. 增強性能
- 27. Elasticsearch增強
- 28. 用CUDA增強
- 29. 增強現實
- 30. 數據庫中的竊取和強制之間的區別
請舉一些例子(代碼片段)來區分類和對象增強。 –