class类

本文介绍了JavaScript中的面向对象编程基础,包括如何定义类、实例属性、静态属性、实例方法和类方法。示例展示了Person类的创建,以及如何通过构造函数在创建对象时初始化属性。此外,还探讨了Dog类及其构造函数的应用,展示了如何通过对象调用方法。

基础类
// 使用class关键字定义类
/**
 * 对象中主要包含了两个部分
 *     属性
 *     方法
 */
class Person {
  /**
   * 直接定义的属性是实例属性,需要通过对象的实例去访问
   *     const person = new Person();
   *     person.name
   *
   * 使用static定义的属性是静态属性(类属性),可以直接通过类访问
   *     Person.gender
   *
   */

  // 实例属性,可读可写
  name: string = "XX";

  // readonly 表示只读属性
  readonly age: number = 18;

  // 在属性前面使用static关键字可以定义类属性(静态属性)
  static readonly gender: string = "man";

  /**
   * 方法
   *  直接定义的方法是实例方法,需要通过对象的实例去调用
   *      person.sayHi()
   *
   *  使用static定义的方法是类方法,可以直接通过类调用
   *      Person.sayHello()
   */
  // 实例方法
  sayHi() {
    console.log("Hi!");
  }

  // 类方法
  static sayHello() {
    console.log("Hello!");
  }
}

const person = new Person();

console.log(person);
console.log(Person.gender);

person.sayHi();
Person.sayHello();

构造函数
class Dog {
  name: string;
  age: number;

  // constructor 构造函数, 会在对象创建时调用
  constructor(name: string, age: number) {
    // 在实例方法中,this就表示当前的实例
    // 在构造函数中当前对象就越是当前新建的那个对象
    // 可以同过this向新建的对象中添加属性
    this.name = name;
    this.age = age;
  }

  bark() {
    // 在实例方法中,this就表示当前的实例
    console.log(this.name + "汪汪汪!");
  }
}

const dog = new Dog("小黄", 3);
const dog2 = new Dog("小白", 2);
dog.bark()
dog2.bark()
console.log(dog);
console.log(dog2);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值