什麼是繼承?
繼承是發生在父子級關係中的現象
繼承 是 建構函式 的高階應用
就是兩個互為父子級關係的建構函式的應用
子級建構函式,繼承的是父級建構函式的屬性和方法
常見的繼承操作,分為 es5 的繼承語法 和 es6 的繼承語法
實際專案中一般不會直接使用繼承語法,一般都是通過框架來完成繼承,不用專門去寫去定義
主要是為了應對面試
最好是將 面試答案 按照自己的理解 來 表述
// 繼承是 兩個父子級關係的建構函式之間的應用
// 如何定義乙個建構函式
// es5語法
// function fun1(name,age)
// // 定義方法
// fun1.prototype.f1 = function()
// es6語法
// class fun2
// // 定義方法
// f2()
// }
// es6的繼承語法
// 先定義父級建構函式 father
// 通過 extends 來指定 繼承的父級的建構函式名稱
// 在構造器 constructor 中 通過 super 來 指定,哪個屬性來自於父級建構函式
// super 指定 屬性**父級
// 繼承屬性,如果父級中有多個屬性
// 在 super 中, 只繼承一部分,並且只設定一部分,沒有設定的,執行結果是 undefined
// 父級的屬性 可以 只繼承部分
// 其他的屬性 如果沒有操作, 是 undefined
// 也可以在子級中,定義父級屬性的資料數值
// 子級中也可以定義新的屬性和屬性值
// 定義父級建構函式
function
father
(name,age)
father.prototype.f1=
function()
// extends 指定從 father 建構函式中,執行繼承操作
class
sonextends
father
// 自定義方法f2(
)}const obj1 =
newfather
('張三',18
);console.
log(obj1)
;// 屬性是直接繼承父級中,定義的屬性的形式
// 方法是呼叫父級中定義的方法
const obj2 =
newson
('李四',20
,'男');
console.
log(obj2);/*
總結 es6的繼承語法
1,繼承語法是為了,簡化**,防止重複**的出現
2,繼承是兩個建構函式之間的應用
3,es6語法,預設是繼承父級建構函式的所有的屬性和所有方法
屬性如果沒有指定資料,執行結果是undefined
方法是通過原型鏈,找到父級建構函式中,定義的方法
4,語法形式:
class 子級 extends 父級
自定義的方法
自定義方法()}*/
<
/script>
繼承及ES6繼承
物件導向的三大特點 多型 繼承 封裝 繼承 乙個型別的物件能夠訪問另外乙個型別的屬性和方法 函式 類與類之間的關係 類就是眾多例項共有的屬性和方法的乙個抽象 原型物件中的this指向例項 function person var person newperson person只是乙個例項 consol...
es5繼承與es6繼承
es5中的繼承方式 1.原型鏈繼承 缺點 1.建立例項時無法像父類建構函式傳遞引數 2.因為指定了原型,所以不能實現多繼承 3.父類建構函式上的屬性被所有子類共用,給原型上的屬性賦值會改變其他子類的屬性值 es5 const parent function name,age parent.proto...
ES6中class的語法與繼承
在es5中,我們常常會使用 proto prototype constructor來實現繼承,這樣寫 多,寫法也不太清晰,所以在es2015版本中增加了class。class a a.prototype constructor class a proto object從上面列印出的東西我們其實可以把...