面向過程和物件導向的對比
面向過程
物件導向
物件
物件是由屬性和方法組成的:
類 class
在 es6 中新增加了類的概念,可以使用 class 關鍵字宣告乙個類,之後以這個類來例項化物件
物件導向的思維特點:
抽取(抽象)物件共用的屬性和行為組織(封裝)成乙個類(模板)
對類進行例項化, 獲取類的物件
constructor() 方法是類的建構函式(預設方法),用於傳遞引數,返回例項物件,通過 new 命令生成物件例項時,自動呼叫該方法。如果沒有顯示定義, 類內部會自動給我們建立乙個constructor()
class person
} //建立例項
var ldh = new person('劉德華', 18);
console.log(ldh.name)
class person
say(content)
}//建立例項
var ldh = new person('劉德華', 18);
ldh.say('你好帥')
注意: 方法之間不能加逗號分隔,同時方法不需要新增 function 關鍵字。
現實中的繼承:子承父業,比如我們都繼承了父親的姓。
程式中的繼承:子類可以繼承父類的一些屬性和方法。
class father
say()
}class son extends father
var damao= new son('劉');
damao.say();
super 關鍵字用於訪問和呼叫物件父類上的函式。可以呼叫父類的建構函式,也可以呼叫父類的普通函式
語法:
class person
} class student extends person
}
注意: 子類在建構函式中使用super, 必須放到 this 前面 (必須先呼叫父類的構造方法,在使用子類構造方法)
class father
}class son extends father
}var damao = new son();
console.log(damao.say()); //我是爸爸的兒子
繼承中的屬性或者方法查詢原則:就近原則
繼承中,如果例項化子類輸出乙個方法,先看子類有沒有這個方法,如果有就先執行子類的
繼承中,如果子類沒有,就去查詢父類有沒有這個方法,如果有就執行父類的這個方法(就近原則)
class father
saysurname()
}class son extends father
sayfristname()
}var damao = new son('劉', "德華");
damao.saysurname();
damao.sayfristname();
ES6知識點簡單總結
let宣告的變數只能在所處遇到的快級有效。不存在變數提公升。暫時性死區,不受外部 影響。在乙個大括號中使用let關鍵字宣告的變數才具有塊級作用域,var關鍵字不具有這個特點 具有塊級作用域。使用const關鍵字宣告的常量必須賦值。常量賦值後值不能更改。varletconst 函式級作用域 塊級作用域...
es6常用知識點總結
1.定義變數的方式 let 1 沒有變數提公升 var具有變數提公升 即在當前作用域的最上面定義這個變數 但不賦值 例 console.log x var x 20 顯示undefined console.log m let m 100 報錯 2 let不可以重複宣告 例 var x 10 var ...
ES6知識點總結(一)
es6知識點總結 一 是對賦值運算子的擴充套件,一種針對陣列或者物件進行模式匹配,然後對其中的變數進行賦值 變數的解構賦值實用性很強,使用場景很多 1.交換賦值 2.函式引數的定義 3.函式引數的預設值 4.從函式返回多個值 5.提取json資料 6.遍歷map結構 陣列解構 物件解構 字串解構 數...