es5的办法

最简略的类

 function Person() {   this.name = 'zy'   this.age = 27      this.run = function () {     console.log( `${this.name} is run`)  // zy is run   } } let person = new Person() person.sex = 'female' console.log('person.name', person.name) // zy console.log('person.sex', person.sex) // female

原型链外面减少属性和办法

   Person.prototype.grade = '一年级'   Person.prototype.work = function () {     console.log( `${this.name} is work`)  // zy is work   }  console.log('person.grade', person.grade) // 一年级  person.work()

增加静态方法

  Person.getInfo = function () {      console.log('person.getInfo') // person.getInfo    }  Person.getInfo()

继承

1. 对象假冒继承形式,只能继承【构造函数】里的属性和办法  function Web () {    Person.call(this) //   }  let web = new Web()  console.log('Web.name', web.name) //  zy  console.log('Web.grade', web.grade) // undefined2. 原型链继承形式,能继承【构造函数】和【原型链】上的属性和办法   不能传参调用  function Web () {  }  Web.prototype =  new Person()  let web = new Web()  console.log('Web.name', web.name) // zy  console.log('Web.grade', web.grade) // 一年级3. 对象假冒 + 原型链继承形式 function Person(name, age) {      this.name = name      this.age = age      this.run = function () {      console.log( `${this.name} is run`)  // zy is run      }    }    function Web(name, age) {       Person.call(this, name, age) // 继承构造函数的属性和办法    }    Web.prototype = Person.prototype // 继承原型链的属性和办法    let web = new Web('zy', 27)    web.run()

es6的办法

最根底的类

class Person {    name: string; // 属性,后面省略了public关键字    constructor (n:string) { // 构造函数,实例化类的时候触发的函数        this.name = n    }     run ():void {        console.log(`${this.name} is run`) // zy is run    }} let person = new Person('zy')person.run()

继承

class Person {    name: string; // 属性,后面省略了public关键字    constructor (name:string) { // 构造函数,实例化类的时候触发的函数        this.name = name    }     run ():void {        console.log(`${this.name} is run`) // ying is run    }} class Web extends  Person{    constructor (name:string) {        super(name) // 初始化父类的构造函数    }}let web = new Web('ying')web.run()

类外面的修饰符

public 私有 在类外面、子类、类里面都能够拜访
protected 爱护类型 在类外面、子类外面能够拜访,在类内部没法拜访
privated 公有 在类外面能够拜访 子类、类里面不能够拜访