- 看透JavaScript:原理、方法與實踐
- 韓路彪
- 4字
- 2020-11-28 15:50:49
第9章 類
9.1 新類型class
ES2015中最大的改變應該就是啟用了class關鍵字,即類的概念。注意,ES本身是基于對象的語言,雖然啟用了類的概念,但是依然不是基于類的語言而是基于對象的語言,這一點在ES2015標準中有明確的說明。
Even though ECMAScript includes syntax for class definitions, ECMAScript objects are not fundamentally class-based such as those in C++, Smalltalk, or Java.
從這里可以看出ES并不是基于類的語言,另外,ES2015中也明確指出了ES是基于對象的語言。
ECMAScript is object-based: basic language and host facilities are provided by objects, and an ECMAScript program is a cluster of communicating objects. In ECMAScript, an object is a collection of zero or more properties.
因此,雖然ES2015中啟用了class的概念,但是ES的本質并沒有發生變化,依然是基于對象的語言而不是基于類的語言,使用class主要是為了方便操作。雖然,對于class所做的事情使用原先的閉包和prototype等組合也可以完成,但是那樣要比直接使用class操作麻煩很多,看起來也不夠清晰,并且直接使用class時采用的是底層語言(例如c、c++)的開發功能,效率更高,因此在瀏覽器支持的情況下應該盡量使用內置的class。
基于對象的語言和基于類的語言存在本質區別,例如在基于對象的語言中創建出來的實例對象可以自己直接添加刪除屬性,也可以添加、刪除或者修改已有的方法屬性,這在基于類的語言中是不可以的。
推薦閱讀
- Java逍遙游記
- Learn Blockchain Programming with JavaScript
- WildFly:New Features
- 案例式C語言程序設計
- 編程的修煉
- Learning Bayesian Models with R
- Windows Presentation Foundation Development Cookbook
- 大數據分析與應用實戰:統計機器學習之數據導向編程
- Serverless computing in Azure with .NET
- Unity 2018 Augmented Reality Projects
- C陷阱與缺陷
- C語言程序設計
- 數字媒體技術概論
- Python高性能編程(第2版)
- INSTANT Lift Web Applications How-to