js怎樣實現繼承

2022-04-08 07:22:46 字數 1420 閱讀 4072

js是門靈活的語言,實現一種功能往往有多種做法,ecmascript沒有明確的繼承機制,而是通過模仿實現的,根據js語言的本身的特性,js實現繼承有以下通用的幾種方式

1.使用物件冒充實現繼承(該種實現方式可以實現多繼承)

實現原理:讓父類的建構函式成為子類的方法,然後呼叫該子類的方法,通過this關鍵字給所有的屬性和方法賦值

js**  

function parent(firstname)  

}  function child(firstname)  

}  var mychild=new  child("李");  

mychild.saysomething();  

2.採用call方法改變函式上下文實現繼承(該種方式不能繼承原型鏈,若想繼承原型鏈,則採用5混合模式)

實現原理:改變函式內部的函式上下文this,使它指向傳入函式的具體物件

js**  

function parent(firstname)  

}  function child(firstname)  

this.getname=function()  

}  var child=new child("張");  

parent.call(child,child.getname());  

child.saysomething();  

js**  

function parent(firstname)  

}  function child(firstname)  

this.getname=function()  

}  var child=new child("張");  

child.saysomething();  

4.採用原型鏈的方式實現繼承

實現原理:使子類原型物件指向父類的例項以實現繼承,即重寫類的原型,弊端是不能直接實現多繼承

js**  

function parent()  

}  function child(firstname)  

}  child.prototype=new  parent();  

var child=new child("張");  

child.saysomething();  

5.採用混合模式實現繼承

js**  

function parent()  

}  parent.prototype.sayparent=function()  

function child(firstname)  

}  child.prototype=new  parent();  

var child=new child("張");  

child.saysomething();  

child.sayparent();  

JS實現繼承

1.使用物件冒充實現繼承 該種實現方式可以實現多繼承 實現原理 讓父類的建構函式成為子類的方法,然後呼叫該子類的方法,通過this關鍵字給所有的屬性和方法賦值 function parent firstname function child firstname var mychild new chi...

js實現繼承

通過修改原型的指向實現的繼承,雖然實現了繼承,但是繼承後的例項物件的屬性值都是一樣的 都是 zs,20,男 只有自己定義的屬性值不一樣。使用這種方式實現的繼承,不能繼承父類的方法,只能繼承父類的屬性。方式一 var obj1 通過這種方式只是讓obj2指向了和obj1相同的一塊位址空間,記憶體中只有...

js 實現繼承

在開始擺弄 之前,應該搞清楚使用繼承的目的和能帶來什麼好處。一般來說,在設計類的時候,我們希望能減少重複性的 並且盡量弱化類之間的耦合。而要做到這兩者都兼顧是很難的,我們需要根據具體的條件和環境下決定我們應該採取什麼方法。根據我們對物件導向語言中繼承的了解,繼承會帶類直接的強耦合,但js由於其特有的...