官术网_书友最值得收藏!

第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。

基于對象的語言和基于類的語言存在本質區別,例如在基于對象的語言中創建出來的實例對象可以自己直接添加刪除屬性,也可以添加、刪除或者修改已有的方法屬性,這在基于類的語言中是不可以的。

主站蜘蛛池模板: 遵义县| 香港 | 灵丘县| 甘南县| 定州市| 湛江市| 比如县| 牙克石市| 元阳县| 搜索| 泰和县| 宾川县| 阿克| 绥化市| 平乐县| 营山县| 黄龙县| 礼泉县| 宁南县| 高要市| 鹤峰县| 巍山| 沽源县| 新源县| 丰台区| 通山县| 铁岭县| 措勤县| 布拖县| 高碑店市| 普宁市| 葫芦岛市| 大足县| 进贤县| 高清| 衡山县| 阜宁县| 雅江县| 广平县| 德保县| 白河县|