JS繼承 小白文

2022-09-05 13:27:13 字數 1252 閱讀 4685

繼承我的理解是 乙個物件 能夠使用另乙個物件的方法和屬性

繼承需要乙個父類建構函式

一、通過原型鏈繼承

通過 建立乙個 person 的例項物件,該物件身上 不僅有 name 和 age 等方法, 也可以訪問到原型鏈上的屬性和方法

缺點是 繼承的子類共用乙個原型,當遇到 引用型別時, 互相影響

二、通過建構函式繼承

1、首先肯定需要通過 new son() 來觸發person.call(this)

2、new son()時 建立了乙個 新物件,修正該新物件的__proto__屬性和constructor屬性

3、在新物件內部建立乙個屬性指向this,也就是son,如 child.fn = son 方法,然後指向該方法,相當於在新物件child內部執行一次son,執行完後刪除該屬性fn,這就是new的執行過程

4、person.call 執行過程: 同樣的,相當於在son內部執行一次person,通過this改變指向,this指向的就是新物件child

5、所以新物件有 name = 『xiaobai』,age = 『20』 這兩個屬性

缺點:無法訪問person原型物件上的屬性

三、組合繼承(一和二合併)

該方法既可以獲得 例項屬性,也可以訪問person原型鏈上的方法

但是在person.call 和 new person時獲取了兩份一樣的例項屬性,比較浪費

四、寄生組合式繼承

該方式主要是通過 共享原型 的方式來實現繼承,但是有乙個問題,就是 子類不能 隨意新增屬性和方法

這就需要通過乙個中間人來解決,通過object.create 創造出來的物件,這個物件的原型物件 指向傳入的引數

下面有object.create的原理

小白乙個,歡迎指正

藍芽基帶傳輸(小白文)

近期開始深入接觸藍芽。首先了解下藍芽是如何傳輸資料的 在應用層,使用者可以隨心所欲的將自己想要傳送的資料通過簡單易懂的格式發給藍芽,藍芽基帶傳輸的只能是01的訊號。藍芽傳輸的技術使用的是跳頻技術,也就是將資料分成若干個資料報,通過79個指定的藍芽頻道進行傳輸資料報 藍芽4.0只有40個通道 每個頻寬...

IT人員轉行寫小白文可以麼?

大約兩個時辰,便輪到龍昊和林奇的考核測試了。兩人分別進了不同的房間進行測試,分開之前,林奇拍了拍龍昊的肩膀囑咐道 龍昊,測試結束就在這裡等我,千萬別走開了。你就算過不了,我可以學了教你!嗯!龍昊點了點頭,心中卻打定主意,一定全力以赴,爭取通過。走進房間,面前有乙個很低的桌台,上面擺著一顆有些光亮的長...

小白文藝程式媛的高階之路

在劉總 wilsonliu 的催促下寫一下總結,幫助後面的求職小夥伴說不上,只是做乙個心路分享,能有一些共鳴和啟發就足矣。背景介紹 2013級華東師範大學,軟體工程 嵌入式 專業,小白的程式媛,經歷百姓滴滴攜程,最後決定在點評做一名萌萌噠的前端開發攻城獅n n 2016.1 2016 3 大三上的那...