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

第9章 類

9.1 新類型class

ES2015中最大的改變應(yīng)該就是啟用了class關(guān)鍵字,即類的概念。注意,ES本身是基于對(duì)象的語(yǔ)言,雖然啟用了類的概念,但是依然不是基于類的語(yǔ)言而是基于對(duì)象的語(yǔ)言,這一點(diǎn)在ES2015標(biāo)準(zhǔn)中有明確的說(shuō)明。

    Even though ECMAScript includes syntax for class definitions, ECMAScript objects
    are not fundamentally class-based such as those in C++, Smalltalk, or Java.

從這里可以看出ES并不是基于類的語(yǔ)言,另外,ES2015中也明確指出了ES是基于對(duì)象的語(yǔ)言。

    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的本質(zhì)并沒(méi)有發(fā)生變化,依然是基于對(duì)象的語(yǔ)言而不是基于類的語(yǔ)言,使用class主要是為了方便操作。雖然,對(duì)于class所做的事情使用原先的閉包和prototype等組合也可以完成,但是那樣要比直接使用class操作麻煩很多,看起來(lái)也不夠清晰,并且直接使用class時(shí)采用的是底層語(yǔ)言(例如c、c++)的開發(fā)功能,效率更高,因此在瀏覽器支持的情況下應(yīng)該盡量使用內(nèi)置的class。

基于對(duì)象的語(yǔ)言和基于類的語(yǔ)言存在本質(zhì)區(qū)別,例如在基于對(duì)象的語(yǔ)言中創(chuàng)建出來(lái)的實(shí)例對(duì)象可以自己直接添加刪除屬性,也可以添加、刪除或者修改已有的方法屬性,這在基于類的語(yǔ)言中是不可以的。

主站蜘蛛池模板: 重庆市| 炉霍县| 页游| 彩票| 丁青县| 南宫市| 浠水县| 双牌县| 恭城| 微山县| 肃宁县| 林周县| 扎兰屯市| 南岸区| 龙岩市| 阿拉善盟| 镶黄旗| 砚山县| 任丘市| 荆州市| 新营市| 潮州市| 华亭县| 泊头市| 河东区| 阿拉尔市| 大厂| 依安县| 鞍山市| 嵊泗县| 秦皇岛市| 广水市| 集安市| 楚雄市| 东方市| 凌海市| 偃师市| 成安县| 恩施市| 龙海市| 四川省|