先介紹一下什麼是繼承
1、繼承是與 建構函式 相關的應用
2、是指讓乙個建構函式去繼承另乙個建構函式的屬性和方法
3、繼承是發生在兩個建構函式之間
下面分別從es5和es6提供的方法介紹一下繼承的常用方法
es5繼承常見方法
1、原型繼承
原型繼承1 - 原型物件繼承:
簡單,方便,易操作
但是,只能繼承原型身上的方法和屬性,不能繼承建構函式內的方法和屬性
//父建構函式
function parent()
parent.prototype.name = "parent";
parent.prototype.show = function()
//子建構函式
function child()
// 深拷貝
for(var i in parent.prototype)
var p = new parent();
p.show();
console.log(p.name);
var c = new child();
c.show();
console.log(c.name);
原型繼承2 - 原型鏈繼承:
1.更加的簡單,方便,易操作
2.不僅可以繼承原型身上的方法和屬性,而且還可以繼承建構函式中的方法和屬性
3.但是,不方便傳參
原理:// child的例項c —>proto—> child.prototype —> parent的例項 —>proto—> parent.prototype
//父建構函式
function parent(n)
this.name = n;
}parent.prototype.show = function()
//子建構函式
function child()
child.prototype = new parent();
var p = new parent("張三");
console.log(p)
p.show();
console.log(p.name);
var c = new child();
console.log(c);
c.show();
console.log(c.name);
2、借用建構函式繼承 建構函式多繼承
建構函式繼承(改變this指向繼承):
1.方便的傳參
2.還可以實現多繼承
3.但是,只能繼承建構函式內部的屬性或方法,不能繼承原型身上的屬性或方法
function ***()
function camera()
function tel()
function email()
function mobilephone(n)
var mp = new mobilephone("huawei p30");
console.log(mp);
3、組合繼承
混合繼承:建構函式繼承 + 原型繼承
1.略複雜
2.既可以繼承建構函式,又可以繼承原型
3.方便傳參
4.可以多繼承建構函式
5.注意:原型鏈繼承時,依然有引數隱患
function parent(s)
parent.prototype.show = function()
function child(s)
for(var i in parent.prototype)
child.prototype.show = function()
var p = new parent("大鑑定師");
p.show();
var c = new child("實習鑑定師");
c.show();
4、es6class繼承
es6的class繼承,原理就是:建構函式方式繼承 + 原型鏈繼承
class parent
show()
}//子建構函式繼承父建構函式
class child extends parent
}var p = new parent("大鑑定師");
p.show();
console.log(p);
var c = new child("實習鑑定師");
c.show();
console.log(c);
JS物件導向 繼承
參考博文 一 物件導向的繼承 1 解析 在原有物件的基礎上,略作修改,得到乙個新的物件,並且不影響原有物件的功能 2 如何新增繼承 拷貝繼承 屬性 call 方法 for in 繼承 子類不影響父類,子類可以繼承父類的一些功能 復用 屬性的繼承 呼叫父類的構造1函式 call 方法的繼承 for i...
js 物件導向 繼承
繼承 將方法的定義放在建構函式中,每建立乙個新物件,都會重複建立該方法一模一樣的副本,浪費記憶體。解決 如果多個子物件都要使用乙個相同的方法時,應該把這個方法放在一種原型物件中,建構函式中不再包含方法定義。原型物件 乙個型別中,專門為所有子物件集中儲存共有方法的物件。同一型別下多個子物件需要用乙個共...
JS 物件導向 繼承
實現繼承是 ecmascript 唯一支援的繼承方式,而這主要是通過原型鏈實現的建構函式 原型和例項的關係 每個建構函式都有乙個原型物件,原型有乙個屬性 constructor 指回建構函式,而例項有乙個內部指標 prototype 指向原型。建構函式 function father console...