摘要:?jiǎn)栴}中的面向?qū)ο笤屠^承等特性不同于等其他面向?qū)ο笳Z言,初看起來非常怪異為什么中有操作符構(gòu)造函數(shù),卻沒有類為什么中使用原型,用原型來模擬類和繼承看起來很別扭參考了講述誕生歷史的幾篇文章后,我總算了解這些特性的來歷,簡(jiǎn)單總結(jié)如下。
問題
JS中的面向?qū)ο蟆⒃屠^承等特性不同于Java等其他面向?qū)ο笳Z言,初看起來非常怪異:
為什么JS中有new操作符、構(gòu)造函數(shù),卻沒有類?
為什么JS中使用原型,用原型來模擬類和繼承看起來很別扭?
參考了講述JS誕生歷史的幾篇文章后,我總算了解這些特性的來歷,簡(jiǎn)單總結(jié)如下。
JS誕生情況Brendan Eich(JS發(fā)明者)要在10天內(nèi)完成JS的設(shè)計(jì),任務(wù)時(shí)間緊迫。
JS的初衷只是用于表單檢驗(yàn)、狀態(tài)欄滾動(dòng)消息等簡(jiǎn)單功能,設(shè)計(jì)要簡(jiǎn)單輕量傻瓜,Brendan Eich并未預(yù)料到日后JS會(huì)如此流行、重量化、復(fù)雜化。
出于網(wǎng)景公司的高層命令和營銷考慮,JS要像Java但又不能太像,要做一個(gè)傻瓜式的、用在網(wǎng)頁中的類Java小弟腳本語言。
除了Java,Brendan Eich出于設(shè)計(jì)考慮、個(gè)人興趣等原因還借鑒了C、Scheme、Self等語言。
JS語言特性來歷了解了JS的誕生,JS為什么是這個(gè)樣子的也就一目了然了:
基本語法,如花括號(hào)、分號(hào)、關(guān)鍵字等 —— 借鑒C。
對(duì)象、構(gòu)造函數(shù)、new操作符 —— 借鑒Java。
沒有類 —— 不能太像Java,沒必要復(fù)雜化。
函數(shù)是一等公民 —— 借鑒Scheme。
原型 —— 借鑒Self。
參考文章Javascript:10天設(shè)計(jì)一門語言
Javascript繼承機(jī)制的設(shè)計(jì)思想 - 阮一峰的網(wǎng)絡(luò)日志
Javascript誕生記 - 阮一峰的網(wǎng)絡(luò)日志
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/97992.html
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:構(gòu)造函數(shù)的兩個(gè)特征函數(shù)內(nèi)部使用了,指向所要生成的對(duì)象實(shí)例。將一個(gè)空對(duì)象的指向構(gòu)造函數(shù)的屬性,這個(gè)對(duì)象就是要返回的實(shí)例對(duì)象。用面向?qū)ο箝_發(fā)時(shí),把要生成的實(shí)例對(duì)象的特有屬性放到構(gòu)造函數(shù)內(nèi),把共有的方法放到構(gòu)造函數(shù)的里面。 JS中面向?qū)ο蟮母拍?面向?qū)ο驩OP是一種組織代碼結(jié)構(gòu)、實(shí)現(xiàn)功能過程的思維方式。它將真實(shí)世界各種復(fù)雜的關(guān)系,抽象為一個(gè)個(gè)對(duì)象,然后由對(duì)象之間的分工與合作,完成對(duì)真實(shí)世界的...
摘要:小程序微信把這個(gè)小程序框架稱為,并聲稱是在微信中開發(fā)小程序的框架。在小程序里面,對(duì)應(yīng)的是和,注意雖然模式和很像,但是在形式上算是微信自己開發(fā)的一套所以你需要使用他們自己的標(biāo)簽。 這篇文章將圍繞下面幾個(gè)方面: 從開發(fā)模式(過程)上對(duì)比Android和小程序,比較兩種模式的異同 從實(shí)現(xiàn)功能上對(duì)比,主要是看看微信小程序的局限 自己的一些看法,微信的優(yōu)勢(shì) 開發(fā)過程上的對(duì)比 在我看來,開發(fā)一...
閱讀 1904·2021-09-28 09:43
閱讀 1204·2021-09-23 11:22
閱讀 2821·2021-09-14 18:05
閱讀 1885·2019-08-30 15:52
閱讀 2885·2019-08-30 10:55
閱讀 2101·2019-08-29 16:58
閱讀 1462·2019-08-29 16:37
閱讀 3109·2019-08-29 16:25