2021-05-11 object in JS

** 三條一模一樣的魚是幾個(gè)對(duì)象

任何一個(gè)對(duì)象都是唯一的,這與它本身的狀態(tài)無關(guān)。
所以,即使?fàn)顟B(tài)一樣的對(duì)象,也并不相等。
我們用狀態(tài)來描述對(duì)象。
我們狀態(tài)的改變即是行為。

** 描述對(duì)象的方法

類是一種常見的描述對(duì)象的方式。寫代碼的時(shí)候分類主要是由于業(yè)務(wù)需要,具有一些相似特性的對(duì)象我們可以劃分為某一類,而不是像劃分生物的“界門綱目科屬種”那么嚴(yán)謹(jǐn)?shù)姆址ā?/p>

“歸類”和“分類”是兩個(gè)主要的流派。
歸類:研究單個(gè)的對(duì)象,從中提取共性,變成類。類與類之間在提取共性,變成抽象類。比如說將魚和羊抽象成動(dòng)物類。
對(duì)于歸類的事情,多繼承是一個(gè)很自然的事情,比如c++
分類:首先將世間萬物抽象是一個(gè)基類object,然后在根據(jù)某個(gè)條件分成動(dòng)物類、植物類等。
對(duì)采用分類思想的計(jì)算機(jī)語言,則是單繼承結(jié)構(gòu),會(huì)有一個(gè)基類object。比如c#,java

**javascript 描述對(duì)象的方式

原型(Prototype)
原型是一種更接近人類原始認(rèn)知的描述對(duì)象的方式。不用嚴(yán)謹(jǐn)?shù)姆诸?,而是用“相似”去描述。任何?duì)象對(duì)象僅僅需要描述它與自己原型的區(qū)別即可。

**練習(xí)

狗 咬 人 :“咬” 這個(gè)行為如何使用對(duì)象抽象?
錯(cuò)誤實(shí)例:

class Dog {
  bite(human) {
    // ...}
}

正確示例:

class human {
  hurt(damage) {
    // ...}
}

Note:
錯(cuò)誤示例中,bite的行為動(dòng)作改變的“human”這個(gè)對(duì)象,而不是dog本身,違背了“行為改變狀態(tài)”的準(zhǔn)則。所以在設(shè)計(jì)的時(shí)候,不要受語言描述的干擾。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容