js對象與繼承

對象:由多組無序?qū)傩越M成的數(shù)據(jù)結(jié)構 (鍵值對) 成對出現(xiàn):屬性名 屬性值
字面量 簡單對象也存在構造函數(shù) (如:下面的dog其構造函數(shù)是Objecd 數(shù)值Number ??)
var dog = {name:"tom",age:2};
構造函數(shù) 批量創(chuàng)建同類對象
function Dog(name,age){this.name = name; this.age = age;}

對象的屬性名是單例的 所以屬性值單例(成對出現(xiàn))
[如果創(chuàng)建多個同名屬性對應著屬性值帆谍,值/地址存在棧中 1.基本數(shù)據(jù)類型存的具體值 屬性名指向它 你再來一個同名的屬性名、還是本來的屬性名 所以還指向原來的值 現(xiàn)在你把指向的值變了 現(xiàn)在的值就替換了原來的值)所以屬性名是單例、多例的話之前的也會被覆蓋掉,同樣也解釋了DOM0級事件只支持一個同名事件名的處理程序(oDiv.onclick=function(){} 屬性名=屬性值);
由于dom0 事件處理本質(zhì)上是對象屬性的賦值操作架曹,由于數(shù)值值唯一的特點拾枣。所以dom0方式只能為dom對象綁定一個有效的事件處理函數(shù)庸论。2.引用數(shù)據(jù)類型存的是地址 屬性名指向地址(值在堆中 同上),如果 字面量 new 會在堆中重新開辟空間]

原型:(構造函數(shù)具有prototype屬性) 函數(shù)對象通常具有一個prototype的屬性叫做原型屬性
原型屬性中的所有屬性可以為其創(chuàng)建的對象共用
實例:構造函數(shù)創(chuàng)建的對象 相對于 構造函數(shù) 叫構造函數(shù)的實例
每個對象都有一個proto屬性 指向其構造函數(shù)的原型

js中沒有繼承焕窝,但可以通過構造函數(shù)的原型屬性 來搭建繼承 原型繼承
繼承:上級函數(shù)的實例a賦值給下級函數(shù)的原型、下級函數(shù)的實例就可指向這個實例a (這個實例a是現(xiàn)在下級函數(shù)的原型)
function Dog(name){ this.name = name; }
Dog.prototype.say = function(){ console.log("wangwang" );}
var d = new Dog("tom");
d.proto 指向函數(shù)原型 原型誰創(chuàng)建的刨裆、底層的 Object對象創(chuàng)建的 所以輸出Object{}
d實例是Dog對象創(chuàng)建的 打印d 輸出Dog{}
注意:下級函數(shù)要先繼承 后創(chuàng)建對象(實例) [如果后繼承:下級函數(shù)的實例指向的原型是下級函數(shù)原來的原型,只要繼承原型就改變了澈圈,所以在繼承前訪問原型中的屬性訪問不到]
存在弊端:上級函數(shù)實例a賦值給下級函數(shù),實例a的私有屬性帆啃、共有屬性(下級要的)都給了下級函數(shù)原型中(原型繼承無法解決私有屬性構建邏輯的復用) 邏輯指屬性
原型方式的繼承不能實現(xiàn)多繼承瞬女,但可以多級繼承,因為原型繼承的本質(zhì)就是屬性賦值努潘。屬性值單例的

(stu.proto.proto.proto.proto null)
原型鏈:構造函數(shù)原型通過函數(shù)之間原型繼承诽偷,逐級鏈接坤学,組成鏈型結(jié)構

多繼承: 借用構造函數(shù)的繼承,解決了私有屬性初始化邏輯的復用(使用call报慕、apply借用上級私有屬性初始化邏輯深浮,初始化邏輯就是下級屬性的初始化)
借用構造函數(shù)方式的繼承: 通過call apply 函數(shù)名.call(要替換的對象名/this指向的對象,函數(shù)的實參) 看的是構造函數(shù)

組合繼承:原型繼承與多繼承放在一起 (兩者互不影響)

寄生方式繼承:1.創(chuàng)建一個過渡函數(shù) 使上級函數(shù)的原型代替過渡函數(shù)的原型
(tmpFn.prototype = Car.prototype);
[原型是底層創(chuàng)建的原有的 Objecd 誰(上級)創(chuàng)建原型、原型中有個屬性constructor(指向下級函數(shù))眠冈;所以沒有了它會隔級找]
2.然后 創(chuàng)建多度函數(shù)的實例a 把實例a賦值給下級函數(shù)的原型
因為constructor(指向函數(shù)) 是原型中的屬性所以實例本身沒有constructor飞苇、在原型里(proto里,proto指向原型)蜗顽;所以把實例a賦值給下級函數(shù)的原型時 只有proto布卡,constructor沒有,要手動添加上(不然在指向函數(shù)時會隔級找)
Bike.prototype.constructor = Bike;

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诫舅,一起剝皮案震驚了整個濱河市羽利,隨后出現(xiàn)的幾起案子宫患,更是在濱河造成了極大的恐慌刊懈,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娃闲,死亡現(xiàn)場離奇詭異虚汛,居然都是意外死亡,警方通過查閱死者的電腦和手機皇帮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門卷哩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人属拾,你說我怎么就攤上這事将谊。” “怎么了渐白?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵尊浓,是天一觀的道長。 經(jīng)常有香客問我纯衍,道長栋齿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任襟诸,我火速辦了婚禮瓦堵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘歌亲。我一直安慰自己菇用,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布陷揪。 她就那樣靜靜地躺著惋鸥,像睡著了一般泉唁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揩慕,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天亭畜,我揣著相機與錄音,去河邊找鬼迎卤。 笑死拴鸵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蜗搔。 我是一名探鬼主播劲藐,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼樟凄!你這毒婦竟也來了聘芜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缝龄,失蹤者是張志新(化名)和其女友劉穎汰现,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叔壤,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瞎饲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了炼绘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗅战。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖俺亮,靈堂內(nèi)的尸體忽然破棺而出驮捍,到底是詐尸還是另有隱情,我是刑警寧澤脚曾,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布东且,位于F島的核電站,受9級特大地震影響斟珊,放射性物質(zhì)發(fā)生泄漏苇倡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一囤踩、第九天 我趴在偏房一處隱蔽的房頂上張望旨椒。 院中可真熱鬧,春花似錦堵漱、人聲如沸综慎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽示惊。三九已至好港,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間米罚,已是汗流浹背钧汹。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留录择,地道東北人拔莱。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像隘竭,于是被迫代替她去往敵國和親塘秦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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