Loading...
墨滴

槑槑

2021/03/31  阅读:36  主题:默认主题

ts中的类

  1. 类的声明,关键字class

    class User {
        
    }

  2. 类的成员变量

    class User {
        name: string

        constructor(name: string) {
            this.name = name;
        }
    }

    let u = new User('Tom')
    console.log(u.name)


  3. 类里面的关键字

    public private protected 默认是public

    private,不可以在类外面直接访问,并且不可以被子类访问

    public,在类外面可以直接访问和修改

    protected,可以被子类访问

class User {
    name: string
    private _dna: string = ''

    constructor(name: string) {
        this.name = name;
    }

    get dna(): string {
        return this._dna;
    }

    set dna(value: string) {
        this._dna = value;
    }
}

let u = new User('Tom')

// 不可以在类外面直接访问
// user._dna = ''
console.log(u.name)


  1. 类的继承,关键字 extends

    class father {
        name: string = ''
        // 私有的以下划线开头
        protected _dna: string = ''
        private _age: number = 30

        get age(): number {
            return this._age;
        }

        set age(value: number) {
            this._age = value;
        }
    }

    class child extends father {
        sayDNA = () => {
            console.log(this._dna + '-aaaaaa')
        }
    }

面向对象编程的三大特性

  1. 多态
  2. 继承
  3. 封装

不用类产生的问题,作用域容易出问题,人容易出问题

var a = 1

function say({
    a = 2
}

say()
console.log(a)
//2

用类,虽然代码多了,但是作用域更加明确,反而不容易出问题

let l = new Lee();
// l.a = 2 //明确声明修改的是类的的成员变量,不容易出问题
console.log(l.a)

写代码五分钟,改bug两小时

槑槑

2021/03/31  阅读:36  主题:默认主题

作者介绍

槑槑