js类与继承

本文介绍了JavaScript中的类如何定义对象属性和行为,类的实例化,以及类继承的概念。同时讨论了静态方法的使用,它们在不依赖类实例的情况下执行相关操作。
摘要由CSDN通过智能技术生成

一、类

        JavaScript中的类(Class)是一种用于创建对象的蓝图。类定义了对象的属性和行为,可以实例化多个对象,并且对象之间可以共享类定义的属性和方法

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log("Hello, my name is " + this.name);
  }

  getAge() {
    return this.age;
  }

  setAge(newAge) {
    this.age = newAge;
  }
}

// 创建一个Person对象
let person1 = new Person("John", 25);

// 调用对象的方法
person1.sayHello(); // 输出 "Hello, my name is John"

// 访问对象的属性
console.log(person1.name); // 输出 "John"

// 调用对象的方法
console.log(person1.getAge()); // 输出 25

// 修改对象的属性
person1.setAge(30);
console.log(person1.getAge()); // 输出 30

注意:JavaScript中的类是引用类型。因此,如果将一个对象赋值给另一个变量,实际上只是将对象的引用赋值给了新的变量,而不是创建了一个新的对象。修改其中一个对象的属性,会影响到其他引用该对象的变量。

二、类继承

        JavaScript中的类继承是一种允许一个类继承另一个类的属性和方法的机制。子类继承了父类的所有属性和方法,并且可以在子类中添加新的属性和方法或对父类的方法进行重写。

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

  eat() {
    console.log(this.name + " is eating.");
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }

  bark() {
    console.log(this.name + " is barking.");
  }
}

// 创建一个Dog对象
let dog1 = new Dog("Max", "Labrador");

// 调用父类的方法
dog1.eat(); // 输出 "Max is eating."

// 调用子类自己的方法
dog1.bark(); // 输出 "Max is barking."

// 子类继承了父类的属性
console.log(dog1.name); // 输出 "Max"

// 子类可以添加自己的属性
console.log(dog1.breed); // 输出 "Labrador"

三、静态方法

        静态方法可以直接通过类调用,而不需要创建类的实例。静态方法通常用于执行与类相关的操作或实现工具函数,而不是对类的实例进行操作

class MathUtils {
  static add(a, b) {
    return a + b;
  }

  static subtract(a, b) {
    return a - b;
  }
}

// 调用静态方法
let result1 = MathUtils.add(5, 3); // 8
let result2 = MathUtils.subtract(5, 3); // 2
console.log(result1);
console.log(result2);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值