es6繼承
class
asaya()
static
privatea()
}class
bextends
asayb()
}let b =
newb
('名字',21
);b.saya()
;b.privatea()
;console.
log(b.name+b.age)
;
轉成es5後
"use strict"
;function
_inheritsloose
(subclass, superclass)
//subclass.__proto__ = superclass;作為例項繼承父類的私有屬性。
vara
=/*#__pure__*/
function()
var _proto =
a.prototype;
_proto.
saya
=function
saya()
;a.privatea
=function
privatea()
;returna;
}();
varb
=/*#__pure__*/
function
(_a)
var _proto2 =
b.prototype;
_proto2.
sayb
=function
sayb()
;returnb;
}(a)
;var b =
newb
('名字',21
);b.saya()
;b.privatea()
;console.
log(b.name + b.age)
;
我們都知道:es6類的繼承,是將父類的私有屬性繼承到自身私有屬性;原型屬性繼承到原型上;但是呢?你知道父類的類屬性方法會被繼承嗎?整合到**嗎?,答:父類的類屬性方法會被整合到子類的原型鏈上__proto__
上。
當整個過程完成繼承後,子類b和父類a形成這樣的關係,?
es6 類的繼承
function animal name animal.prototype.drink function animal.prototype.eat function item function dog name,breed animal.prototype dog.prototype animal....
ES6 類的繼承
類的繼承 super 關鍵字 子類通過 extends 關鍵字來繼承父類的所有屬性和方法 子類必須在constructor中呼叫super方法,否則新建例項會報錯 es5的繼承中,實質是先創造子類的例項物件this,然後再將父類的方法 屬性新增到this上面。es6的繼承中,實質是先創造父類的例項物...
ES6類的繼承
es6 引入了關鍵字class來定義乙個類,constructor是構造方法,this代表例項物件。constructor相當於python的init而this則相當於self 類之間通過extends繼承,繼承父類的所有屬性和方法。super關鍵字,它代指父類的this物件,子類必須在constr...