extends
keyword is used in
class declarations
or
class expressions
to create a class that is a child of another class.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
class ChildClass extends ParentClass { ... }
extends
keyword can be used to subclass custom classes as well as built-in objects.
.prototype
of the extension must be an
Object
or
null
.
extends
The first example creates a class called
Square
from a class called
Polygon
. This example is extracted from this
live demo
(source)
.
class Square extends Polygon {
constructor(length) {
// Here, it calls the parent class' constructor with lengths
// provided for the Polygon's width and height
super(length, length);
// Note: In derived classes, super() must be called before you
// can use 'this'. Leaving this out will cause a reference error.
this.name = 'Square';
}
get area() {
return this.height * this.width;
}
}
extends
with built-in objects
This example extends the built-in
Date
object. This example is extracted from this
live demo
(source)
.
class myDate extends Date {
getFormattedDate() {
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return this.getDate() + '-' + months[this.getMonth()] + '-' + this.getFullYear();
}
}
| 规范 |
|---|
|
ECMAScript (ECMA-262)
The definition of 'extends' in that specification. |
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
extends
|
Chrome
49
|
Edge 13 | Firefox 45 | IE No |
Opera
36
|
Safari 9 |
WebView Android
49
|
Chrome Android
49
|
Firefox Android 45 |
Opera Android
36
|
Safari iOS 9 |
Samsung Internet Android
5.0
|
nodejs
6.0.0
|
完整支持
不支持
见实现注意事项。
用户必须明确启用此特征。