JS 學習筆記 物件導向和類的繼承

2021-10-06 21:58:17 字數 3215 閱讀 2157

程式設計中乙個有兩個程式設計思想,其中乙個是面向過程,另乙個是物件導向。下面分別介紹一下這兩種程式設計方式。

面向過程程式設計全稱為(process-oriented-programming)可以簡稱為 pop。面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟逐步實現,使用的時候再依次呼叫即可。

物件導向程式設計全稱為(object-oriented-programming),物件導向是把事物分解成乙個個物件,然後由物件之間分工與合作。

物件導向程式設計思想是以每個物件為功能中心,具有明確分工。

物件導向程式設計具有靈活、**復用率高、容易維護和開發的優點,適合多人合作的大型軟體專案。

物件是由屬性和方法組成的,是乙個無序鍵值對的集合,指的是乙個具體的事物

語法:

//字面量建立物件

var ldh =

console.log(ldh);

//建構函式建立物件

function star(name, age)

var ldh = new star('劉德華', 18); // 例項化物件

console.log(ldh);

在 es6 中增加了類的概念,可以使用class關鍵字宣告乙個類,之後以這個類來例項化物件,類抽象了物件的公共部分,它泛指一大類物件。而物件特指某乙個,通過類例項化乙個具體的物件。

語法:

//步驟1 使用class關鍵字

class name

//步驟2使用定義的類建立例項 注意new關鍵字

var xx = new name();

constructor()方法是類的建構函式(預設方法),用於傳遞引數,返回例項物件,通過new關鍵字生成物件例項時,自動呼叫該方法,如果沒有顯式定義,類內部會自動建立乙個constructor()

例如:

// 1.建立類 class 建立乙個明星類

class star

}// 2.利用類建立物件 new

var ldh = new star("劉德華", 18);

var zxy = new star("張學友", 20);

console.log(ldh);

console.log(zxy);

執行結果:

語法:

// 1.建立類 class 建立乙個明星類

class star

sing(song)

}// 2.利用類建立物件 new

var ldh = new star("劉德華", 18);

var zxy = new star("張學友", 20);

console.log(ldh);

console.log(zxy);

ldh.sing("冰雨");

zxy.sing("李香蘭");

執行結果:

注意

現實中的繼承:子承父業,比如我們繼承了父親的姓。

程式中的繼承:子類可以繼承父類的一些屬性和方法。

語法:

// 父類

class father

// 子類繼承父類

class son extends father

例如:

class father 

money()

}class son extends father

var son = new son();

son.money(); // 100

如果使用一下方式則會報錯

class father 

calculate()

}class son extends father

}var son = new son(1, 2);

son.calculate();

解決:出現這個錯誤的原因是因為傳遞的引數指向了子類,所以需要向父類中傳遞引數,所以需要在子類建構函式中呼叫父類建構函式,所以在子類建構函式中新增super()即可。

class father 

calculate()

}class son extends father

}var son = new son(1, 2);

son.calculate(); // 3

super關鍵字可以訪問或呼叫父類上的函式,可以呼叫父類的建構函式,也可以呼叫父類的普通函式。

使用super呼叫父類的普通函式

class father 

}class son extends father

}

注意

繼承中的屬性或方法查詢原則:就近原則。

如果例項化子類輸出乙個方法,先看子類有沒有這個方法,如果有就先執行子類的。如果子類裡面沒有,就去查詢父類有沒有這個方法,如果有,就執行父類的這個方法(就近原則)

語法:

class father 

sum()

}// 子類繼承父類加法方法,同時,擴充套件減法方法

class son extends father

subtract()

}var son = new son(5, 3);

son.subtract(); // 2

son.sum(); // 8

注意

python學習 物件導向 類 物件 繼承

約定成俗的類的命名方式 1 首字母大寫 2 為了與其他進行區分盡量避免使用 建議採用studenthomework小駝峰的格式 類的常規格式 class student 定義變數 資料成員 student sum 80 類變數 建構函式 def init self,name,age 其中的self....

JS物件導向 繼承

參考博文 一 物件導向的繼承 1 解析 在原有物件的基礎上,略作修改,得到乙個新的物件,並且不影響原有物件的功能 2 如何新增繼承 拷貝繼承 屬性 call 方法 for in 繼承 子類不影響父類,子類可以繼承父類的一些功能 復用 屬性的繼承 呼叫父類的構造1函式 call 方法的繼承 for i...

js 物件導向 繼承

繼承 將方法的定義放在建構函式中,每建立乙個新物件,都會重複建立該方法一模一樣的副本,浪費記憶體。解決 如果多個子物件都要使用乙個相同的方法時,應該把這個方法放在一種原型物件中,建構函式中不再包含方法定義。原型物件 乙個型別中,專門為所有子物件集中儲存共有方法的物件。同一型別下多個子物件需要用乙個共...