繼承模式,物件空間,物件列舉

2021-10-05 17:32:48 字數 1648 閱讀 4326

繼承的發展史

傳統形式–> 原型鏈

過多的繼承了沒用的屬性

借用建構函式

不能繼承借用建構函式的原型

每次建構函式都要多走一乙個函式(通過call來改變this的指向)

function

person

(age,name,***)

function

student

(age,name,***,grade)

var student =

newstudent(20

,'xiaozhao'

,'male',18

);console.

log(student)

;

共享原型

不能隨便改動自己的原型(son的protptype和father的prototype是一樣的原型)

father.prototype.lastname =

'deng'

;function

father()

var father =

newfather()

;function

son(

)function

inherit

(target,origin)

inherit

(son,father)

;var son =

newson()

; console.

log(son.lastname)

;

注意事項:繼承必須在new之前,否則的話木已成舟。

4. 聖杯模式

father.prototype.lastname =

'deng'

;function

father()

var father =

newfather()

;function

son(

)function

inherit

(target,origin)

f.prototype = origin.prototype;

target.prototype =

newf()

;}inherit

(son,father)

;var son =

newson()

; console.

log(son.lastname)

;

標準的聖杯模式

//聖杯模式

function

inherit

(target, origin);f

. prototype =

0rigin. prototype;

target. prototype =

newf()

; target. prototype. constuctor = target;

target. prototype. uber =

0rigin. prototype ;

}

功能:管理變數,防治汙染全域性,實現模組化開發。

day9 繼承模式 命名空間 物件列舉

傳統形式 原型鏈 過多的繼承了沒用的屬性 借用建構函式 不能繼承借用建構函式的原型 每次建構函式都要多走乙個函式 function person name,age,function student name,age,grade var student newstudent 共享原型 不能隨便改動自己...

命名空間 物件列舉

在實際專案開發中,往往乙個頁面由多人共同開發,這個時候就存在乙個問題,一旦命名的變數相同,將會導致衝突,如下 張三定義的內容 var num 123 李四定義的內容 var num 我是乙個字串 這個張三在後面呼叫num時就會發生錯誤,為了避免該情況的產生,我們一般使用立即執行函式 閉包的功能進行開...

物件,類,命名空間,繼承

就是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面 也就會牽涉到下面要談到的介面的概念 比如相思鳥和烏鴉,我們在抽象時,我們忽略它們嘴的不一樣,而我們只在意它們都是有嘴的 mouth 我們忽略它們羽毛顏色的不一樣,而只在意它們的羽毛是有顏色的 color 然後我們抽象出嘴 羽毛顏色等特點。然...