十五、類和對(duì)象進(jìn)階
1.復(fù)習(xí):值類型和引用類型
值類型在調(diào)用方法傳遞是部凑,傳的是值
數(shù)組是引用類型
2.原型對(duì)象
prototype屬性是類的原型對(duì)象
通常情況下露乏,我們習(xí)慣將類的方法,定義到類的原型對(duì)象中砚尽,這樣做的好處是施无,提高代碼的利用率辉词,不會(huì)開(kāi)辟多余的內(nèi)存空間必孤。
__proto__屬性是對(duì)象的原型對(duì)象,注意:同種類型多個(gè)對(duì)象上的原型對(duì)象 共同指向 類型上的原型對(duì)象瑞躺。
類的原型對(duì)象上面的方法敷搪,類的對(duì)象,可以直接調(diào)用
如果將方法直接定義在類里面幢哨,將來(lái)根據(jù)這個(gè)類創(chuàng)建的每個(gè)對(duì)象赡勘,都要?jiǎng)?chuàng)建自己獨(dú)立的這些方法
如果要?jiǎng)?chuàng)建很多對(duì)象,對(duì)內(nèi)存的開(kāi)銷會(huì)很大捞镰。
可以將類的方法闸与,添加到類的原型對(duì)象身上
2.2查看String和Array的原型對(duì)象
定義一個(gè)字符串毙替,本質(zhì)上它是一個(gè)對(duì)象
既然是對(duì)象,就一定要有一個(gè)__proto__的原型對(duì)象
采用字符串的構(gòu)造函數(shù)去創(chuàng)建字符串對(duì)象
擴(kuò)展日期的方法(返回格式:yyyy-mm-dd hh:mm:ss)
創(chuàng)建JS文件
3class定義類
這是ES6之前践樱,定義類型的方式
從ES6以后厂画,添加了class關(guān)鍵字,定義類型
?注意:該語(yǔ)法的兼容性不高拷邢,ie9以下都不支持袱院,部分其他低版本的瀏覽器也存在兼容性問(wèn)題。
4.繼承
定義動(dòng)物類
定義動(dòng)物的方法
創(chuàng)建一個(gè)動(dòng)物對(duì)象
定義一個(gè)狗狗類
將Dog類的原型對(duì)象改成一個(gè)Animal對(duì)象
狗狗特有的方法
創(chuàng)建一個(gè)狗狗對(duì)象
定義一個(gè)貓咪類
繼承Animal的方法
貓咪特有的方法
ES6的繼承方式
定義動(dòng)物類
創(chuàng)建一個(gè)動(dòng)物對(duì)象
定義狗狗類class關(guān)鍵字瞭稼,定義類忽洛;extends關(guān)鍵字繼承類,
采用這種方式环肘,Animal的方法欲虚,此刻已經(jīng)全部繼承過(guò)來(lái)了。