20 ES6(3)class基本語法

2022-09-12 11:21:10 字數 1157 閱讀 5296

es6提供了更接近傳統語言的寫法,引入了class(類)這個概念,作為物件的模板。通過class關鍵字,可以定義類。基本上,es6的class可以看作只是乙個語法糖,它的絕大部分功能,es5都可以做到,新的class寫法只是讓物件原型的寫法更加清晰、更像物件導向程式設計的語法而已。

例子:

//es5寫法

function pointes5(x, y)

pointes5.prototype.tostring = function () ;

var p = new pointes5(1, 2);

//定義類 es6

class pointes6

} tostring()

}var p2 = new pointes6(1, 2);

console.log(p2.hasownproperty('x')) // true

console.log(p2.hasownproperty('y')) // true

console.log(p2.hasownproperty('tostring')) // false

console.log(p2.hasownproperty('say'))

console.log(p2.__proto__.hasownproperty('tostring')) // true

constructor方法是類的預設方法,通過new命令生成物件例項時,自動呼叫該方法。乙個類必須有constructor方法,如果沒有顯式定義,乙個空的constructor方法會被預設新增。

constructor方法預設返回例項物件(即this),完全可以指定返回另外乙個物件。

例子:

class foo 

}new foo() instanceof foo // false

上面**中,constructor函式返回乙個全新的物件,結果導致例項物件不是foo類的。

類的建構函式,不使用new是沒法呼叫的,會報錯。這是它跟普通建構函式的乙個主要區別,後者不用new也可以執行。

生成類的例項物件的寫法,與es5完全一樣,也是使用new命令。如果忘記加上new,像函式那樣呼叫class,將會報錯。

與es5一樣,例項的屬性除非顯式定義在其本身(即定義在this物件上),否則都是定義在原型上(即定義在class上)。

ES6基本的語法 八 Class

es7 class 的新特性 function point x,y point.prototype.tostring function const p newpoint 1 2 使用 class 之後 class point tostring const p newpoint 1 2 上面的 中定義...

es6隨手記 Class的基本語法

es6中的類 實際上是建構函式的另一種寫法 class aa var b new aa b.dostuff aaa 實際上類上的所有方法也都定義到了這個類的prototype屬性上 上面等同於 aa.prototype 類上定義的方法是不可列舉的,這個和es5中有所區別。所以可以使用下面方法 obj...

ES6之 class的基本語法(類)

es6之前,我們都是通過建構函式來生成例項物件 function point x,y point prototype.sum function let point newpoint 1 2 console.log point.sum 3es6 提供了更接近傳統語言的寫法,引入了 class 類 這個...