ES6 面试题 | 06.精选 ES6 面试题(类)

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

简要解释ES6中的类和继承的用法。

在 ES6(ECMAScript 2015 及更高版本)中,引入了类和继承的新特性,使得 JavaScript 中的面向对象编程更加方便和规范化。

类的定义:

class MyClass {
  constructor(name) {
    this.name = name;
  }

  sayHello() {
    console.log(`Hello, ${this.name}!`);
  }
}

let obj = new MyClass('John');
obj.sayHello(); 

在上面的代码中,我们定义了一个名为MyClass的类。类中包含一个构造函数constructor,用于初始化对象的属性。此外,类还可以包含其他方法。

继承的使用:

class MyParentClass {
  constructor(name) {
    this.name = name;
  }

  sayHello() {
    console.log(`Hello, ${this.name}!`);
  }
}

class MyChildClass extends MyParentClass {
  constructor(name, age) {
    super(name); 
    this.age = age;
  }

  sayGoodbye() {
    console.log(`Goodbye, ${this.name}!`);
  }
}

let childObj = new MyChildClass('Alice', 25);
childObj.sayHello(); 
childObj.sayGoodbye(); 

在上面的代码中,我们定义了一个名为MyParentClass的父类和一个名为MyChildClass的子类。子类通过使用extends关键字来继承父类的属性和方法。在子类的构造函数中,我们使用super关键字来调用父类的构造函数,以便在初始化子类对象时也能初始化父类的属性。

通过类和继承,我们可以更好地组织和复用代码,提高代码的可维护性和扩展性。

在类的定义中,除了构造函数和方法,还可以包含哪些属性?

在类的定义中,除了构造函数和方法,还可以包含以下属性:

  1. 实例属性:用于存储每个实例对象的独特数据。可以在构造函数中或类的外部进行初始化。

  2. 类属性:属于类本身的属性,而不是属于类的某个实例。类属性可以通过类名直接访问。

  3. 静态方法:使用 static 关键字定义的方法,可以通过类名直接调用,而无需创建类的实例。

  4. 抽象方法:使用 abstract 关键字定义的方法,只包含方法的签名,没有具体的实现。抽象方法必须在抽象类中被定义,并且子类需要实现该方法。

  5. 常量:使用 const 关键字定义的常量,值在定义后不能被修改。

在这里插入图片描述

这些属性可以帮助更好地组织和管理类的代码,并提供更多的灵活性和可扩展性。

继承的具体用法是什么?

继承是面向对象编程中的一个重要概念,它允许一个类从另一个类中继承属性和方法。以下是继承的具体用法:

  1. 使用 extends 关键字:在子类的定义中使用 extends 关键字来指明要继承的父类。

  2. 继承属性:子类会继承父类的所有属性,包括实例属性和类属性。

  3. 继承方法:子类会继承父类的所有方法,包括实例方法和静态方法。

  4. 重写方法:子类可以重写父类的方法,即在子类中定义与父类同名的方法,并实现自己的逻辑。在调用方法时,会根据实际对象的类型来决定使用哪个方法。

  5. 调用父类方法:在子类中,可以使用 super 关键字来调用父类的方法。这可以用于在子类的构造函数中初始化父类的属性,或者在子类的方法中调用父类的方法。

  6. 多态性:通过继承和重写方法,可以实现多态性。即不同的子类可以对相同的方法进行不同的实现,根据实际对象的类型来执行相应的操作。

通过继承,可以实现代码的重用和扩展,提高代码的可维护性和扩展性。同时,继承也有助于建立类之间的层次结构,更好地组织和管理代码。

如何使用类和继承来实现代码的复用?

使用类和继承来实现代码复用的具体步骤如下:

  1. 定义父类:首先,定义一个父类,其中包含一些通用的属性和方法。这些属性和方法可以被多个子类共享。

  2. 定义子类:然后,定义多个子类,它们继承自父类。子类可以继承父类的属性和方法,并可以根据需要进行扩展或重写。

  3. 使用子类:在代码中使用子类来创建对象。这些对象将具有父类的属性和方法,以及子类特有的属性和方法。

  4. 代码复用:通过使用继承,子类可以复用父类的代码,无需重复编写相同的代码。例如,如果多个子类都需要执行相同的操作,可以在父类中定义一个通用的方法,然后在子类中调用该方法。

通过使用类和继承,可以将代码组织成一个层次结构,提高代码的可维护性和可扩展性。同时,也可以减少代码的冗余,提高代码的复用率。

以下是一个使用类和继承实现代码复用的简单代码案例:

// 定义一个父类 Person
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

// 定义一个子类 Student,继承自 Person 类
class Student extends Person {
  constructor(name, age, major) {
    super(name, age); 
    this.major = major;
  }

  sayHello() {
    // 重写父类的 sayHello 方法
    console.log(`Hello, my name is ${this.name} and I'm a student majoring in ${this.major}`);
  }
}

// 创建子类的实例对象并调用方法
let student = new Student('Alice', 20, 'Computer Science');

student.sayHello(); 

在这个例子中,我们定义了一个父类 Person,其中包含 nameage 属性以及 sayHello 方法。然后,我们定义了一个子类 Student,它继承自 Person 类,并添加了 major 属性。子类 Student 重写了父类的 sayHello 方法,以适应学生的特定需求。

通过创建子类的实例对象 student,我们可以调用 sayHello 方法,它将输出学生的信息。这样,我们通过继承和重写实现了代码复用,避免了重复编写相同的代码。

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值