ES6特性之:類
物件導向程式設計是一個很流行也很讓人容易理解的方法。物件導向程式設計中的一個核心概念就是類,我們可以把事物都抽象成一個個的類來描述他們的資訊和行為。
我們把JavaScript稱為基於物件的語言,而不是物件導向的語言,它是一個基於prototype的語言。它的語法中沒有像Java之類典型面嚮物件語言中定義一個類的語法,我們要建立一個對新的物件的描述,可能會這樣寫:
function Person(name, age) {
this.name = name;
this.age = age;
this.walk = function () {
console.log("I`m walking...");
};
}
然後要根據這個物件描述建立一個新物件例項,就會這麼做:
var person = new Person(`kevin`, 18);
在ES6中,提供了一個更符合物件導向風格的類定義方式:使用class關鍵字,雖然它只是一個語法糖,但是好歹看起來和主流面向程式設計的語言更一致了。
上面的例子可以用class
關鍵字改寫:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
walk() {
console.log("I`m walking...");
}
}
靜態方法
提供了static
關鍵字在類中定義靜態方法:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
walk() {
console.log("I`m walking...");
}
static create(name, age) {
return new Person(name, age)
}
}
繼承
可以使用extends
關鍵字讓當前類繼承另一個類的屬性和方法:
// 父類:形狀
class Shape {
constructor(name) {
this.name = name;
}
draw() {
console.log("drawing " + this.name);
}
}
//子類:圓形
class Circle extends Shape {
constructor() {
super(`circle`); //呼叫父類的constructor
}
}
//子類:方形
class Rect extends Shape {
constructor() {
super(`rect`); //呼叫父類的constructor
}
}
var circle = new Circle();
circle.draw(); //drawing circle
var rect = new Rect();
rect.draw(); //drawing rect
相關文章
- ES6 新特性之SymbolSymbol
- javascript ES6 新特性之 解構JavaScript
- es6新特性之 class 基本用法
- ES6特性之:引數預設值
- ES6新特性
- JavaScript ES6 特性JavaScript
- ES6核心特性
- ES6系列之專案中常用的新特性
- ?Java8新特性之Optional類Java
- java8 新特性之Optional 類Java
- Java8 新特性之 Optional 類Java
- es6核心特性圖
- es6新特性分享
- ES6新特性總結
- ES6 新增特性小結
- 玩轉ES6新特性
- 前端-JavaScript新特性(ES6)前端JavaScript
- ES6常用的新特性
- 淺析ES6新特性
- ES6新特性總結之解構賦值和字串模板賦值字串
- ES6新特性Promise詳解Promise
- ES6的全新特性:模板字串字串
- ES6新特性總結之函式和擴充套件運算子...函式套件
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- 1.5萬字概括ES6全部特性
- 帶你總結ES6的特性
- 簡單說說ES6新特性
- ES6常用的新特性總結
- Nodejs原生支援的ES6特性NodeJS
- 類的property特性
- ES6 - 類與繼承繼承
- 前端日拱一卒D10——ES6筆記之新特性篇前端筆記
- ES6新特性總結之let和const--史上最全最簡潔
- ES6中的新特性:Iterables和iterators
- ES6語言特性的總結(3)
- ES6語言特性的總結(1)
- ES6語言特性的總結(2)
- es6新語法新特性總結(上)