ES6的class和繼承

2021-09-25 21:50:07 字數 1680 閱讀 2215

二.class 的繼承

function

myfun

(x,y)

myfun.prototype.

=function()

var a =

newmyfun(1

,2)

class

myfun()

}// 類的內部所有定義的方法,都是不可列舉的

object.

keys

(myfun.prototype)

;//

1.所有的類都有乙個constructor方法,如果沒有顯式定義,乙個空的constructor方法會被預設新增。

2.constructor方法預設返回例項物件(即this)。

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

class

myfun

tostring()

}let a =

newmyfun(1

,2);

a.hasownproperty

('x');

// true

a.hasownproperty

('y');

// true

a.hasownproperty

('tostring');

// false

myfun.

hasownproperty

('tostring');

// true

class

myclass

getx()

setx

(value)

}

class

foo}

foo.

classmethod()

// 'hello'

class

rectangle

}

1.extends繼承
class

point

class

colorpoint

extends

point

}

2.object.getprototypeof() 方法
object.getprototypeof方法可以用來從子類上獲取父類。
object.

getprototypeof

(sun)

=== father;

3.super 關鍵字

1.super作為函式使用

class

aclass

bextends

a}

super()在這裡相當於

2.super作為物件時

// 由於super指向父類的原型物件,所以定義在父類例項上的方法或屬性,是無法通過super呼叫的。

classa}

class

bextendsa}

let b =

newb()

;b.m // undefined

ES6入門 Class 的繼承

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

ES6中的類(class)和繼承

語法形式 class person showname showage let p1 new person yang 18 console.log p1.showname p1.showage 也可以寫成 const person class class裡面取值函式 getter class裡面設定函...

ES6之 Class 的繼承(十二)

super關鍵字 class colorpoint extends point tostring 如果不呼叫super方法,子類就得不到this物件 class point class colorpoint extends point let cp newcolorpoint referenceer...