二.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...