要了解js繼承,必定先要去了解原型鏈,為何呢?因為原型鏈是作為實現繼承的主要方法。
以下幾點一定要謹記:那就是什麼是建構函式、什麼是原型、什麼是例項、以及他們之間的關係?
繼承:利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法
每個建構函式都有乙個原型物件:person.prototype(prototype是指向原型物件的指標)
原型物件都包含乙個指向建構函式的指標:person.prototype.constructor = person
例項都包含乙個指向原型物件的內部指標:var a = new person();a._proto_ = person.prototype
通過原型鏈實現繼承
function supertype()function subtype(){}
subtype.prototype = new supertype();
var instance = new subtype();
instance.colors.push("white");
console.log(instance.colors); //"red,blue,green,white"
var instance2 = new subtype();
console.log(instance2.colors); //"red,blue,green,white"
借用建構函式
function supertype(name)function subtype()
var instance = new subtype();
console.log(instance.name); //lucy
console.log(instance.age); //20
組合繼承
組合繼承也叫作偽經典繼承,指的是將原型鏈和借用建構函式的技術組合在一起的繼承模式,精髓是使用原型鏈實現對原型屬性和方法的繼承,通過借用建構函式來實現對例項屬性的繼承。
function supertype(name)supertype.prototype.sayname = function()
function subtype(name,age)
subtype.prototype = new supertype();
subtype.prototype.sayage = function()
var instance = new subtype("lucy",20);
instance.colors.push("white");
console.log(instance.colors); //"red,blue,green,white"
instance.sayname(); //lucy
instance.sayage(); //20
var instance2 = new subtype("tom",28);
console.log(instance2.colors); //"red,blue,green"
instance2.sayname(); //tom
instance2.sayage(); //28
js繼承幾種方式
js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心 將父...
幾種js的繼承方式
1 繼承第一種方式 物件冒充 function super username function sub username var supernew new super super var subnew new sub sub supernew.hello subnew.hello subnew.wo...
js的幾種繼承方式
方式一 原型鏈繼承 function parent parent.prototype.getparentname function 子類 function child 下面這步實現繼承,這步需要放在getchildname 之前,不然獲得子類方法無法使用 child.prototype new pa...