本文概要
- 要记住的要点
JavaScript的extends关键字用于父类的基础上创建一个子类。它有利于子类来获取所有属性和它的父类的行为。
要记住的要点
- 它保持了IS-A的关系。
- 关键字延伸类表达式或类声明被使用。
- 使用extends关键字,就可以获取内置对象的所有属性和行为,以及自定义类。
- 我们还可以使用基于原型的方式来实现继承。
在这个例子中,我们扩展Date对象,以显示今天的日期。
<
script>
class Moment extends Date {
constructor() {
super();
}}
var m=new Moment();
document.writeln("Current date:")
document.writeln(m.getDate()+"-"+(m.getMonth()+1)+"-"+m.getFullYear());
<
/script>
输出:
Current date: 31-8-2018
让我们看一个例子来显示从给定日期的年份。
<
script>
class Moment extends Date {
constructor(year) {
super(year);
}}
var m=new Moment("August 15,1947 20:22:10");
document.writeln("Year value:")
document.writeln(m.getFullYear());
<
/script>
【JavaScript的OOPS继承 – JavaScript教程 – srcmini】输出:
Year value: 1947
JavaScript的延伸,例如:自定义类
在这个例子中,我们声明子类,它扩展它的父类的属性。
<
script>
class Bike
{
constructor()
{
this.company="Honda";
}
}
class Vehicle extends Bike {
constructor(name,price) {
super();
this.name=name;
this.price=price;
}
}
var v = new Vehicle("Shine","70000");
document.writeln(v.company+" "+v.name+" "+v.price);
<
/script>
输出:
Honda Shine 70000
JavaScript的延伸示例:基于原型的方法
在这里,我们执行基于原型的继承。在这种方法中,没有必要使用类和关键字扩展。
<
script>
//Constructor function
function Bike(company)
{
this.company=company;
}Bike.prototype.getCompany=function()
{
return this.company;
}
//Another constructor function
function Vehicle(name,price) {
this.name=name;
this.price=price;
}
var bike = new Bike("Honda");
Vehicle.prototype=bike;
//Now Bike treats as a parent of Vehicle.
var vehicle=new Vehicle("Shine",70000);
document.writeln(vehicle.getCompany()+" "+vehicle.name+" "+vehicle.price);
<
/script>
输出:
Honda Shine 70000
推荐阅读
- JavaScript的cookie的属性
- JavaScript的OOPS封装
- JavaScript的OOPS原型对象
- JavaScript的严格模式
- JavaScript的提升
- JavaScript调试
- JavaScript的this关键字
- JavaScript的删除一个Cookie
- JavaScript的Cookie