ts——类

类的相关概念

  • 类:定义了一个事物的抽象特点,包含他的属性和方法
  • 对象:类的实例,通过new生成
  • 面向对象的三大特点:封装、继承、多态
  • 修饰符:修饰符是一些关键字,用来限定成员或类型的性质,比如public表示公有属性和方法

ES6中类的用法

属性和方法

使用 class 定义类,使用 constructor 定义构造函数。

通过 new 生成新实例的时候,会自动调用构造函数。

class Person {
    public name;
    constructor(name) {
        this.name = name;
    }
    sayHi() {
        return `My name is ${this.name}`;
    }
}

let a = new Animal('ben');
console.log(a.sayHi()); // My name is ben

类的继承

使用 extends 关键字实现继承,子类中使用 super 关键字来调用父类的构造函数和方法。

class Chinese extends Person{
  constructor(name) {
    super(name); // 调用父类的 constructor(name)
    console.log(this.name);
  }
  sayHi() {
    return 'Meow, ' + super.sayHi(); // 调用父类的 sayHi()
  }
}

let c = new Chinese ('Zhang'); // 
console.log(c.sayHi()); // Meow, My name is Zhang

ts中类的用法

ts可以使用三种访问修饰符,分别是public,private,protected

  • public修饰的属性和方法是私有的,可以在任何地方访问到。
  • private修饰的属性和方法是私有的,不能在声明他的类的外部进行访问
  • protected中的属性和方法是受保护的,他和private的区别在于他在子类中是允许访问的。

在上面的例子中,name的属性被设置为了public,所以直接访问实例的name属性时允许的

很多时候,我们希望有的属性是无法直接存取的,这时候可以使用private。

class Person{
  public name;
  private constructor(name) {
    this.name = name;
  }
}
class Cat extends Animal {
  constructor(name) {
    super(name);
  }
}

let a = new Person('Jack');//报错,当构造函数修饰为 private 时,该类不允许被继承或者实例化:

当构造函数修饰为 protected 时,该类只允许被继承:

class Person{
  public name;
  protected constructor(name) {
    this.name = name;
  }
}
class Cat extends Animal {
  constructor(name) {
    super(name);
  }
}

let a = new Person('Jack');

类 · TypeScript 入门教程从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript。http://ts.xcatliu.com/advanced/class.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值