方法一通過原型鏈
grandfather.prototype.lastname =
'劉';
function
grandfather()
var grandfather =
newgrandfather()
; father.prototype = grandfather;
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()
;
缺點:1 每次建構函式都要多執行乙個函式 2不能借用建構函式的原型
3. 共享原型
father.prototype.lastname =
'liu'
;function
father()
function
son(
) son.prototype = father.prototype;
var son =
newson()
;var father =
newfather()
;
缺點:不能隨意改動原型
4. 聖杯模式
var inherit =
(function()
return
function
(target,origin)}(
));
關於js繼承
1.建構函式實現繼承,缺點 無法繼承父類原型鏈上的屬性和方法 父類 function parent1 parent.prototype.say function 子類 function child1 2.原型鏈實現繼承,子類例項化的物件屬性會相互影響 父類 function parent2 子類 f...
JS 繼承總結
es裡面沒有真正的繼承,但是能通過某些手段達到繼承效果,從而讓乙個類擁有另外乙個類的方法 類 建構函式 繼承描述某語言環境 魔獸世界 哈!其實我沒玩過 魔獸世界裡面 有humen類 humen類裡面有gnome 侏儒 gnome有方法say 我的名字 有共有屬性ggroup gnome humen ...
關於js原型繼承
js的每個類都有乙個prototype物件 訪問物件的屬性時,會先訪問到物件自身是否有定義這個屬性 如果沒有定義,就會去訪問物件所屬型別的prototype物件是否有此屬性 原型繼承就是把型別的prototype指向乙個父類的新物件,這樣每派生乙個新類出來都會構造乙個新的父類物件作為原型,這個物件和...