1. 傳統形式–>原型鏈
grand.prototype.lastname=
"ji"
;function
grand()
var grand =
newgrand()
; father.prototype = grand;
function
father()
var father =
newfather()
; son.prototype = father;
function
son(
)var son =
newson()
;
缺點:
想繼承的和不想繼承的都繼承來了,過多的繼承了沒用的屬性
2. 借用建構函式
function
person
(name,age,***)
function
student
(name,age,***,grade)
var student =
newstudent()
;
缺點:
不能繼承借用建構函式的原型
每次建構函式都要多走乙個函式(在執行時多增加了乙個函式的呼叫)
3. 共享原型
father.prototype.lastname =
"ls"
;function
father()
function
son(
) son.prototype = father.prototype;
var son =
newson()
;var father =
newfather()
;
或
father.prototype.lastname =
"ls"
;function
father()
function
son(
)function
inherit
(target,origin)
inherit
(son,father)
;var son =
newson()
;
若要給son的原型新增屬性,father原型的屬性也會更改。
缺點:不能隨便改動自己的原型
4. 聖杯模式
f函式作為乙個中間過渡層,f的原型是father的原型,son的原型是f物件(繼承了father原型的屬性),相當於son的原型擁有father原型的屬性,但son的原型同時也可以擁有自己的屬性而不影響father的原型。
father.prototype.lastname =
"ls"
;function
father()
function
son(
)function
inherit
(target,origin)
f.prototype = origin.prototype;
target.prototype =
newf()
;//原型的構造方法
target.prototype.constuctor = target;
//uber超類 表明真正繼承自誰
target.prototype.uber = origin.prototype;
}inherit
(son,father)
;var son =
newson()
;var father =
newfather()
;
或
JS繼承發展史
缺點 過多繼承了沒用的屬性。function parent name function child name,hobby var child newchild 缺點 1 不能繼承建構函式的原型 2 每次構造都要多執行乙個函式。從實際考慮並沒有提公升效率。以parent.prototype作為公有原型...
IT薪水發展史
1k 兄弟別做it了,不論你是什麼公司,國營的做it就是配角,那位兄弟願意一輩子做配角,非國營的嗎,看看做什麼別的合適,it不好混,趁早離開 1k 3k 初級階段,一般是剛進公司的,肯定非常缺錢,這時候動力足,也有時間,沒有男 女朋友拖累,象公司內部5k 6k的高手學習。什麼,沒有,什麼爛公司,你也...
記憶體發展史
記憶體 容量 指標 時期出現原因 simm記憶體 30pin 256kb 1982年至今 軟體程式和新一代80286硬體平台的出現 simm記憶體 72pin 512kb 2mb 1988 1990 pc迎來386和486時代,cpu向16bit發展 edo dram 4 16mb 電壓 5v 頻寬...