ts与es6学习记录-类与概念

上面两章介绍了一些es6的方法和循环的差异,前端的同学肯定对类,泛型,接口,有些陌生。

口上说出这些话的人,一般都是后台,当然也有前端童鞋知道。以我个人学习的以及个人的思考分享给大家。

啥是类?

想想这个一个场景,当我们使用面对对象的方式来构建一个项目,写在一个文件中,但是这个项目很大,设计的模块也比较多。

这个时候,就需要一个顶级的对象,下面有三个二级对象,6个三级对象,呈现金字塔的形状,这个时候,三级对象想访问顶部对象咋办?只能继承呗?

但是在js(以前)中是没有继承的概念的,当然你也可以手动实现一个。是不是又多了一个文件?而且如果有多级对象,我想知道它是不是属于谁下的对象?

遇到的问题很多,只能是一个项目一个对象的设计,不可复用,一些相似的场景下是可以的。但是远远没有到解决问题的程度。

 

class 类的概念就是为了解决这个问题的。如果对类还没有概念,把他想想成一个原型链!

的构成:类分为两个部分,类的内部,类的外部

class Person{
  //这是内部
  name;
  eat();
//这里设置属性,是否可以被外部访问 constructor(){ console.log('hah') } } //类的外部

的属性有哪些?又称为控制符

public:设置内部和外部都可以访问。
private:私有的,只有类的内部才可以访问。
protected:受保护的,类的内部和子类可以访问,其他无法访问。
constructor:类的构造函数,当类被实例化的时候被调用一次,调用的是new 一次,也只会new一次。
extends:继承另一个类,继承父类的所有属性和方法。
    //这个时候有个场景,想把父类中的name传入给子类,使用super(name),这样就传过去了,如果子类想访问父类,很简单,父类.方法。
泛型:参数化的类型,一般用来限制集合的内容。
    //举个栗子,var workers:Array<Person>=[];
    //给参数workers指定是数组类型,指定是Person,默认值是数组。
    //使用该参数,放进去的数组只能是属于Person的(子类也可以),不属于Person的类就会报错

接口:用来建立某种代码约定,使得其他开发者在调用某个方法或者创建一个新的类的时候必须遵循接口所定义的代码约定

猜你喜欢

转载自www.cnblogs.com/damai/p/9172128.html