全面理解面向?qū)ο蟮?JavaScript

重新認(rèn)識面向?qū)ο?br>

為了說明 JavaScript 是一門徹底的面向?qū)ο蟮恼Z言导梆,首先有必要從面向?qū)ο蟮母拍钪?, 探討一下面向?qū)ο笾械膸讉€(gè)概念:

一切事物皆對象

對象具有封裝和繼承特性

對象與對象之間使用消息通信,各自存在信息隱藏

實(shí)際上碑隆,JavaScript 語言是通過一種叫做原型(prototype的方式來實(shí)現(xiàn)面向?qū)ο缶幊痰摹O旅婢蛠碛懻?b>基于類的(class-based)面向?qū)ο?/b>和基于原型的 (prototype-based) 面向?qū)ο?/b>這兩種方式在構(gòu)造客觀世界的方式上的差別蹬音。

使用函數(shù)構(gòu)造器構(gòu)造對象

除了字面式聲明(literal notation方式之外上煤,ECMAScript 允許通過構(gòu)造器(constructor)創(chuàng)建對象。每個(gè)構(gòu)造器實(shí)際上是一個(gè)函數(shù)(function) 對象, 該函數(shù)對象含有一個(gè)“prototype”屬性用于實(shí)現(xiàn)基于原型的繼承prototype-based inheritance共享屬性(shared properties著淆。對象可以由“new 關(guān)鍵字 + 構(gòu)造器調(diào)用”的方式來創(chuàng)建

徹底理解原型鏈 (prototype chain)

在 ECMAScript 中劫狠,每個(gè)由構(gòu)造器創(chuàng)建的對象擁有一個(gè)指向構(gòu)造器 prototype 屬性值的隱式引用(implicit reference,這個(gè)引用稱之為原型(prototype牧抽。進(jìn)一步嘉熊,每個(gè)原型可以擁有指向自己原型的隱式引用(即該原型的原型),如此下去扬舒,這就是所謂的原型鏈(prototype chain在具體的語言實(shí)現(xiàn)中阐肤,每個(gè)對象都有一個(gè)__proto__ 屬性來實(shí)現(xiàn)對原型的隱式引用

基于類的面向?qū)ο蠛突谠偷拿嫦驅(qū)ο蠓绞奖容^

在基于類的面向?qū)ο蠓绞街校?b>對象(object依靠類(class來產(chǎn)生。而在基于原型的面向?qū)ο蠓绞街校?b>對象(object則是依靠構(gòu)造器(constructor利用原型(prototype構(gòu)造出來的。舉個(gè)客觀世界的例子來說明二種方式認(rèn)知的差異孕惜。例如工廠造一輛車愧薛,一方面,工人必須參照一張工程圖紙衫画,設(shè)計(jì)規(guī)定這輛車應(yīng)該如何制造毫炉。這里的工程圖紙就好比是語言中的類 (class),而車就是按照這個(gè)類(class制造出來的削罩;另一方面瞄勾,工人和機(jī)器 ( 相當(dāng)于 constructor) 利用各種零部件如發(fā)動(dòng)機(jī),輪胎弥激,方向盤 ( 相當(dāng)于 prototype 的各個(gè)屬性 ) 將汽車構(gòu)造出來进陡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市微服,隨后出現(xiàn)的幾起案子趾疚,更是在濱河造成了極大的恐慌,老刑警劉巖以蕴,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糙麦,死亡現(xiàn)場離奇詭異,居然都是意外死亡丛肮,警方通過查閱死者的電腦和手機(jī)赡磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宝与,“玉大人仆邓,你說我怎么就攤上這事“楸睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵徙硅,是天一觀的道長榜聂。 經(jīng)常有香客問我,道長嗓蘑,這世上最難降的妖魔是什么须肆? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮桩皿,結(jié)果婚禮上豌汇,老公的妹妹穿的比我還像新娘。我一直安慰自己泄隔,他們只是感情好拒贱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般逻澳。 火紅的嫁衣襯著肌膚如雪闸天。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天斜做,我揣著相機(jī)與錄音苞氮,去河邊找鬼。 笑死瓤逼,一個(gè)胖子當(dāng)著我的面吹牛笼吟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霸旗,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼贷帮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了定硝?” 一聲冷哼從身側(cè)響起皿桑,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔬啡,沒想到半個(gè)月后诲侮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箱蟆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年沟绪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片空猜。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绽慈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辈毯,到底是詐尸還是另有隱情坝疼,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布谆沃,位于F島的核電站钝凶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唁影。R本人自食惡果不足惜耕陷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望据沈。 院中可真熱鬧哟沫,春花似錦、人聲如沸锌介。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裹虫,卻和暖如春肿嘲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筑公。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工雳窟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匣屡。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓封救,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捣作。 傳聞我的和親對象是個(gè)殘疾皇子誉结,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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