java JavaScript和java有啥聯(lián)系嗎?
JavaScript和java有啥聯(lián)系嗎?讓我告訴你一個(gè)故事:當(dāng)時(shí),網(wǎng)景與Java所在的Sun公司有合作關(guān)系](其實(shí),如果你問(wèn)這個(gè)問(wèn)題,你就會(huì)知道流行已經(jīng)成功了]最后,它改名為JavaScript]題
JavaScript和java有啥聯(lián)系嗎?
讓我告訴你一個(gè)故事:
當(dāng)時(shí),網(wǎng)景與Java所在的Sun公司有合作關(guān)系
](其實(shí),如果你問(wèn)這個(gè)問(wèn)題,你就會(huì)知道流行已經(jīng)成功了
]最后,它改名為JavaScript
]題外話:
事實(shí)上,微軟也生產(chǎn)了客戶端腳本語(yǔ)言,命名為VBScript和JScript。
嚴(yán)格來(lái)說(shuō),現(xiàn)在還沒(méi)有JavaScript
1996年,JavaScript提交給了ECMA國(guó)際標(biāo)準(zhǔn)委員會(huì),命名為ECMAScript
ECMA的TC39小組負(fù)責(zé)制定該語(yǔ)言的規(guī)范,每年更新規(guī)范,并引入該語(yǔ)言的新特性。所以你會(huì)看到Es1 ES2 Es3 Es4 Es5 ES6
ES6被稱為下一代JavaScript
是es2016 es2017 es2018 es2019 es2020的總稱
1。組合(has-a)關(guān)系可以顯式獲取包含類的對(duì)象(在繼承中稱為父類),而繼承(is-a)是隱式獲取父類的對(duì)象,包含類對(duì)應(yīng)父類,外部類的組合對(duì)應(yīng)子類。
2. 組合關(guān)系在運(yùn)行時(shí)決定,繼承關(guān)系在編譯時(shí)決定。
3. 復(fù)合是復(fù)合類和包含類之間的松耦合關(guān)系,繼承是父類和子類之間的緊耦合關(guān)系。
4. 選擇使用組合關(guān)系時(shí),外部類的對(duì)象包含在組合類中,組合類可以調(diào)用外部類的必要方法。使用繼承關(guān)系時(shí),父類的所有方法和變量都被子類無(wú)條件繼承,不能選擇子類。
5. 最重要的一點(diǎn)是,當(dāng)使用繼承關(guān)系時(shí),可以實(shí)現(xiàn)類型回溯,即使用父類變量引用子類對(duì)象。通過(guò)這種方式,多態(tài)性可以實(shí)現(xiàn),但是組合不具有這種特性。
6. 同樣需要注意的是,如果您決定重用另一個(gè)類的方法永遠(yuǎn)不需要更改,那么您應(yīng)該使用composition,因?yàn)閏omposition只是重用包含的類的接口,繼承甚至可以重寫這些接口,除了重用父類的接口之外,還可以修改父類接口的默認(rèn)實(shí)現(xiàn)。構(gòu)圖不具備這一特點(diǎn)。
7. 從邏輯上講,這種結(jié)合主要體現(xiàn)了整體和局部的思想。例如,computer類由memory類、CPU類、hard disk類等組成,繼承反映了一種可追溯的父子關(guān)系,子類也是父類的對(duì)象。
8. 二者的區(qū)別主要體現(xiàn)在類的抽象階段。在分析類之間的關(guān)系時(shí),我們應(yīng)該決定是使用組合還是繼承。
9. 引用網(wǎng)友的一句經(jīng)典名言,我們應(yīng)該能夠分清繼承和結(jié)合的區(qū)別:結(jié)合可以說(shuō)是“我雇了一位老人在家工作”,而繼承是“我父親幫我在家工作”。