JS高級(1)面向對象與面向過程

1.面向對象與面向過程

1.1.面向過程(性能高)
分析出解決問題的步驟,然後用函數把這些步驟一步步實現
1.2.面向對象(易維護,易複用,易擴展),封裝,繼承,多態
把事情分解成爲對象,然後由對象之間分工與合作

2.對象與類

2.1.對象
-- 對象是由屬性和方法組成的,是一組無序的鍵值對的集合,指一個具體的事物:
	-- 屬性:事物的特徵,在對象中用屬性來表示
	-- 方法:事物的行爲,在對象中用方法來表示
2.2.類
ES6中新增了類的概念,可以使用class關鍵字生命一個類,之後以這個類來實例化對象,類抽象了對象的公共部分,
它泛指某一大類(class)對象特指一個,通過類實例化一個具體的對象。
2.2.1.創建類
1.步驟1:使用class關鍵字
	class name {
		// class body
	}
2.步驟2:使用定義的類創建實例,注意new關鍵字
	var xx = new name()
	舉個🌰:
		class Star{
			constructor(name,age){ //類的共有屬性放到constructor裏面
				this.name = name;
				this.age = age;
			}
		}
		var Dw = new Star('Dw',18)
		console.log(Dw)
2.2.2.類的繼承
class Father {}
// 子類繼承父類
class Son extends Father{}
注意:
	1.繼承中,若果實例化的子類輸出一個方法,先看子類,有沒有這個方法,如果有就先執行子類的。
	2.子類沒有,就去查找父類有沒有這個方法,如果有,就執行父類的
	3.子類想要繼承父類的方法,同時在自己內部擴展自己的方法,利用super,調用父類的構造函數,super必須在子類this之前調用
舉個🌰:
	class Son extends Father{
		Constructor(x,y){
			super(x,y){ 	//利用super調用父類的構造函數
				this.x=x
				this.y=y
			}
		}
	}
	4.時刻注意this的指向問題,所以必須是先定義類,之後通過類實例化,類的共有屬性和方法一定要加this使用
	(1)Constructor中的this指向的是new出來的實力對象
	(2)自定義的方法,一般也指向new出來的實力對象
	(3)綁定事件之後this指向的就是觸發事件的事件源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章