面向?qū)ο蟮膉s

面向?qū)ο笳Z言舒萎,就是掌握‘類’程储,‘對象’蹭沛,‘實例’的相關(guān)知識以及他們間的關(guān)系。如‘類’的封裝章鲤、繼承和多態(tài)摊灭。
  • 對象:萬物皆對象,各種事物都可成為我們的研究對象败徊。
  • 類:對具有相同屬性的各對象的共同部分進(jìn)行分類帚呼、提取,封裝皱蹦。如‘人’這個類中煤杀,‘性別’就是人的屬性之一。
  • 實例:從類中派生出來的就稱為實例沪哺。實例既有自己的私有屬性沈自,也有從類中繼承來的公有屬性。
js中類的封裝辜妓、繼承和多態(tài)
  • js中類的實現(xiàn)是通過原型和原型鏈實現(xiàn)的
    1.1, 原型:每一個函數(shù)數(shù)據(jù)類型的值枯途,都含有prototype(原型)屬性(這個屬性是天生自帶的)。這個屬性值是一個對象籍滴,用來存儲實例的公用屬性和方法酪夷。
    1.2, 在prototype這個屬性對象中,都包含一個constructor屬性(也是天生自帶)孽惰,這個屬性指向函數(shù)本身晚岭。(類似于C++中的構(gòu)造器)
    1.3, 每一個對象數(shù)據(jù)類型的值,都含有私隱原型屬性'proto'灰瞻,該值指向?qū)ο笏鶎兕惖脑?prototype)
    2.1, 原型鏈:每個對象都含有私隱原型proto腥例,并且指向所屬類的原型辅甥,所以每個對象都會通過原型這個屬性與上級連接酝润,我們就把這種通過原型屬性進(jìn)行連接的方式叫做原型鏈。
    2.2, 原型鏈的查找機(jī)制:先在自己的私有屬性上查找璃弄,沒有找到就通過proto這個屬性向自己所屬類的原型prototype進(jìn)行查找要销,如果沒有再通過原型的proto繼續(xù)向上尋找,直到尋找到基類Object.prototype為止夏块。(Object為基類疏咐,所以它的proto為null)。
    3.1, 這種原型鏈的查找機(jī)制也就是js中類的繼承和多態(tài)的實現(xiàn)機(jī)制脐供,如下:
    例子1:

    function Person(name, age){
        this.name = name
        this.age = age
    }
    Person.prototype.speak = function(){
      console.log('i can speak chinese') 
    }
    let p1 = new Person('小明'浑塞,18)
    p1.speak = function(){
      console.log('i can speak english') 
    }
    console.log(p1.speak()) //  'i can speak english'
    let p2 = new Person('小紅',22)
    console.log(p2.speak()) //  'i can speak chinese'
    

    例子2:


    原型鏈模式.png
  • 通過hasOwnProperty可以檢查某個屬性是否為該對象的私有屬性

let ary = [1,2,3]
console.log(arr.hasOwnProperty('push')) // false 因為'push'是數(shù)組類(Array)的公有屬性政己,而非當(dāng)前實例'ary'的私有屬性
  • 通過'in'可以檢查某個屬性是否為該對象具有的屬性(包含公有和私有屬性)
let ary = [1,2,3]
console.log('push' in ary) // true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酌壕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卵牍,老刑警劉巖果港,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糊昙,居然都是意外死亡辛掠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門释牺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萝衩,“玉大人,你說我怎么就攤上這事没咙∏菲” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵镜撩,是天一觀的道長预柒。 經(jīng)常有香客問我,道長袁梗,這世上最難降的妖魔是什么宜鸯? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮遮怜,結(jié)果婚禮上淋袖,老公的妹妹穿的比我還像新娘。我一直安慰自己锯梁,他們只是感情好即碗,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陌凳,像睡著了一般剥懒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上合敦,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天初橘,我揣著相機(jī)與錄音,去河邊找鬼充岛。 笑死保檐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崔梗。 我是一名探鬼主播夜只,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒜魄!你這毒婦竟也來了扔亥?” 一聲冷哼從身側(cè)響起爪膊,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎砸王,沒想到半個月后推盛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡谦铃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年耘成,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驹闰。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡瘪菌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘹朗,到底是詐尸還是另有隱情师妙,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布屹培,位于F島的核電站默穴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏褪秀。R本人自食惡果不足惜蓄诽,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒吗。 院中可真熱鬧仑氛,春花似錦、人聲如沸闸英。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甫何。三九已至出吹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沛豌,已是汗流浹背趋箩。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留加派,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓跳芳,卻偏偏與公主長得像芍锦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子飞盆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359