ES6 哪些关键词可用于实现继承
在这篇文章中,我们将讨论在ES6中实现继承时可以使用的关键词。在JavaScript中,使用“extends”、“this”和“super”关键词来实现继承。
Extends关键词: 使用extends关键词在类声明或类表达式中构建一个子类。父类的方法会传递给子类。
- JavaScript this关键词: 关键词“this”指的是当前执行代码的对象。它指的是正在执行函数的对象。如果函数被称为普通函数,则“this”指的是全局变量或对象。
- JavaScript super关键词: super关键词通过调用父类的构造函数来获取父类的方法和属性。它用于访问父对象、它的属性和方法。
让我们来演示一些关键词的示例。
示例1: 在这个示例中,apple类继承自fruits类,由于在console.log()中没有使用this关键词,所以父类数组中的值在子类中不被使用。
Javascript
<script>
class fruits {
constructor(benefits) {
this.benefits = ["vitamins", "minerals"];
}
}
class apple extends fruits {
constructor(benefits) {
super(benefits);
console.log("apples provide : " + benefits.join(" and "));
}
}
obj = new apple(["fibre", "lung strength"]);
</script>
输出:
apples provide : fibre and lung strength
示例2: 这段代码与之前的代码类似,但区别在于 在使用super方法之后,将其应用于benefits数组时 ,我们使用this关键字,它指向父类中定义的数组。
Javascript
<script>
class fruits {
constructor(benefits) {
this.benefits = ["vitamins", "minerals"];
}
}
class apple extends fruits {
constructor(benefits) {
super(benefits);
console.log("apples provide : " +
this.benefits.join(" and "));
}
}
obj = new apple(["fibre", "lung strength"]);
</script>
输出:
apples provide : vitamins and minerals
示例3: 在下面的示例中,我们定义了一个具有特定方法的类。 企鹅类扩展自父类,即鸟类。 父类中还有一个方法swim()。企鹅类包含了来自父类的所有方法。让我们看看在这个示例中如何使用“this”,“super”和“extends”关键字。
HTML
<script>
class birds {
constructor(name) {
this.name = name;
}
eat() {
console.log("birds eat");
}
sleep() {
console.log("birds sleep");
}
}
class penguin extends birds {
constructor(name) {
super(name);
}
swim() {
console.log("I'm " + this.name +
" i can also swim!!");
}
}
obj = new penguin("peggy");
obj.swim();
obj.sleep();
</script>
输出结果:
"I'm peggy i can also swim!!"
"birds sleep"
极客教程