面向?qū)ο笳Z言

面向?qū)ο笳Z言特性:

1.封裝 ?2.繼承 3.多態(tài)(父類引用指向子類實例)

javascript得到對象的方法:

1.通過new Object得到 ? 例:var 變量 = new Object()走净;

使用這種定義的方式,雖然可以定義一個對象,但是因為沒有類的約束黄痪,所以無法實現(xiàn)重復(fù)使用誉察。

2.使用json得到 ? var 變量 ={ }域帐;

使用json方法實現(xiàn)痒谴,和new Object 一樣存在對象不能重用的缺陷

3.使用工廠模式得到

例: function createOb (name,age){

var o=new Object();

o.name=name;

o.age=age;

o.say=function(){

alert("我的名字是"+this.name+"我今年"+this.age+)稚铣;

}

return o;

}

var p1=createOb("小明",18);

p1.say();

var p2=createOb("剛子",20);

p2.say();

使用工廠模式解決代碼的冗余問題箱叁。

使用了工廠模式定義了對象,這樣就很好的解決了對象無法重用的問題惕医,但是此時又存在了另一個問題耕漱,就是我們無法判斷得到的對象的類型,如typeof或者instanceof來判斷類型抬伺,僅僅得到一個Object類型螟够,多以推出了基于構(gòu)造函數(shù)的方式。

4.使用構(gòu)造函數(shù)來創(chuàng)建一個對象峡钓。

使用構(gòu)造函數(shù)得到妓笙;(解決了無法判斷所得到類型的問題,但是形成了閉包函數(shù)能岩,造成不必要的內(nèi)存占用)注:如果把構(gòu)造函數(shù)中的方法函數(shù)寞宫,轉(zhuǎn)移到構(gòu)造函數(shù)外,會擴大方法函數(shù)的作用域拉鹃,不利于開發(fā)辈赋!

封裝-javascript的原型(prototype)


原型:

原型是js中非常特殊的一個對象,當(dāng)一個函數(shù)創(chuàng)建之后膏燕,會隨之產(chǎn)生一個原型對象钥屈,當(dāng)通過這個函數(shù)的構(gòu)造函數(shù)創(chuàng)建 了一個具體的對象 之后,在這個 具體對象中就會有一個屬性指向 原型坝辫。



常見的原型檢測方式:


原型重寫:

在上面的寫法中篷就,我們已經(jīng)解決了大量的問題,使用原型阀溶,但是如果我們的對象中存在大量的屬性或者方法的時候腻脏,使用上面的方式鸦泳,感覺要寫大量的【對象.prototype.屬性名】這樣的代碼感覺不是很好银锻,那么我們就可以用json的方式來寫:


封裝--原型創(chuàng)建對象:

因為原型存在永品,我們實現(xiàn)了對象的封裝,但是這種封裝也同樣可能存在問題的击纬。

1鼎姐,我們無法像使用構(gòu)造函數(shù)的那樣將屬性傳遞用于設(shè)置值

2,當(dāng)屬性中有引用類型更振,可能存在變量值的重復(fù)

如下代碼:


終極方案—基于組合的對象定義

為了解決原型所帶來的問題炕桨,需要通過組合構(gòu)造函數(shù)和原型來實現(xiàn)對象的創(chuàng)建將:屬性在構(gòu)造函數(shù)中定義,將方法在原型中定義肯腕,這種有效集合了兩者的優(yōu)點献宫,是目前最為常用的一種方式。


原型鏈實現(xiàn)繼承:


當(dāng)子類的原型指向父類的對象后实撒,子類就繼承了父親姊途,實現(xiàn)了繼承,這就是基于原型鏈的繼承知态,我們可以通過內(nèi)存模型來分析這種繼承捷兰。


但是使用原型鏈實現(xiàn)繼承要注意以下一些問題:

1,不要在設(shè)定了原型鏈之后负敏,再原型重寫

2贡茅,一定要在原型鏈賦值之后才能添加或者覆蓋方法

父類方法的覆蓋(重寫)

當(dāng)子類繼承父類后,子類如果認(rèn)為父類的方法不能滿足自己或者不太滿意父類的方法其做,可以使用與父類同名 的方法來覆蓋(也叫重寫)父類方法顶考。

注意:javascript中存在重寫,但是沒有重載妖泄。

原型鏈繼承的缺陷

原型鏈繼承存在的缺陷就是:

1村怪,無法從子類中調(diào)用父類的構(gòu)造函數(shù),這樣就沒有辦法把子類中 屬性賦值給父類浮庐。

2甚负,父類中屬性是在子類的原型中的,這違背了我們前面所說的封裝的理念(屬性在對象中审残,方法在原型中)梭域,會出現(xiàn)前面值的混淆問題。

所以我們一般都不會使用單純的原型鏈來實現(xiàn)繼承搅轿。


extends

在ES6中繼承的實現(xiàn)使用extends來實現(xiàn):


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末病涨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子璧坟,更是在濱河造成了極大的恐慌既穆,老刑警劉巖赎懦,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異幻工,居然都是意外死亡励两,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門囊颅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來当悔,“玉大人,你說我怎么就攤上這事踢代∶ぴ鳎” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵胳挎,是天一觀的道長饼疙。 經(jīng)常有香客問我,道長慕爬,這世上最難降的妖魔是什么窑眯? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮澡罚,結(jié)果婚禮上伸但,老公的妹妹穿的比我還像新娘。我一直安慰自己留搔,他們只是感情好更胖,可當(dāng)我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隔显,像睡著了一般却妨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上括眠,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天彪标,我揣著相機與錄音,去河邊找鬼掷豺。 笑死捞烟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的当船。 我是一名探鬼主播题画,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼德频!你這毒婦竟也來了苍息?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竞思,沒想到半個月后表谊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡盖喷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年爆办,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片传蹈。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡押逼,死狀恐怖步藕,靈堂內(nèi)的尸體忽然破棺而出惦界,到底是詐尸還是另有隱情,我是刑警寧澤咙冗,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布沾歪,位于F島的核電站,受9級特大地震影響雾消,放射性物質(zhì)發(fā)生泄漏灾搏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一立润、第九天 我趴在偏房一處隱蔽的房頂上張望狂窑。 院中可真熱鬧,春花似錦桑腮、人聲如沸泉哈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丛晦。三九已至,卻和暖如春提陶,著一層夾襖步出監(jiān)牢的瞬間烫沙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工隙笆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锌蓄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓撑柔,卻偏偏與公主長得像瘸爽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乏冀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內(nèi)容

  • ??面向?qū)ο螅∣bject-Oriented辆沦,OO)的語言有一個標(biāo)志昼捍,那就是它們都有類的概念识虚,而通過類可以創(chuàng)建任意...
    霜天曉閱讀 2,098評論 0 6
  • 設(shè)計模式概述 在學(xué)習(xí)面向?qū)ο笃叽笤O(shè)計原則時需要注意以下幾點:a) 高內(nèi)聚、低耦合和單一職能的“沖突”實際上妒茬,這兩者...
    彥幀閱讀 3,736評論 0 14
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,106評論 0 21
  • 別人設(shè)置的心錨 別人的催眠 是足夠讓我弱小的心被感染 但每一次放空大腦 思緒就帶我飛了一陣 我想表達(dá)出來 理智告訴...
    MaryCeeport閱讀 200評論 0 0
  • 家庭早教產(chǎn)品可可獅第12月齡-鼓勵獨立行走 寶寶自主能力增強卵惦,喜歡模仿爸爸媽媽事期,手指也靈活很多,生活中喜歡摸這摸那...
    快樂可可獅閱讀 490評論 0 0