11. TypeScript 类的构造函数

这节课继续学习类的知识,如果你学过Java的话,对构造函数一定不陌生,构造函数就是在类被初始化的时候,自动执行的一个方法。我们通过这个构造方法经常做很多需要提前完成的工作,比如显示页面前我们要从后台得到数据。直接看例子。

类的构造函数

新建立一个页面Demo11.ts,然后在页面里新建一个 Person 类,类的里边定义一个name,但是name我们并不给他值,然后我们希望在new出对象的时候,直接通过传递参数的形式给name赋值,并打印出来。这时候我们就需要用到构造函数了,构造函数的关键字是constructor

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

const person= new Person('mybj123.com')
console.log(person.name)

写完后使用ts-node demo11.ts进行查看,应该可以打出mybj123.com的字样。这是最常规和好理解的写法,那有没有更简单的写法呢?当然有。

class Person{
    constructor(public name:string){
    }
}

const person= new Person('mybj123.com')
console.log(person.name)

这种写法就相当于你定义了一个name,然后在构造函数里进行了赋值,这是一种简化的语法,在工作中我们使用这种语法的时候会更多一些。

类继承中的构造器写法

普通类的构造器我们已经会了,在子类中使用构造函数需要用super()调用父类的构造函数。这时候你可能不太理解我说的话,我们还是通过代码来说明。

class Person{
    constructor(public name:string){}
}

class Teacher extends Person{
    constructor(public age:number){
        super('mybj123.com')
    }
}

const teacher = new Teacher(18)
console.log(teacher.age)
console.log(teacher.name)

这就是子类继承父类并有构造函数的原则,就是在子类里写构造函数时,必须用super()调用父类的构造函数,如果需要传值,也必须进行传值操作。即使是父类没有构造函数,子类也要使用super()进行调用,否则就会报错。

class Person{}

class Teacher extends Person{
    constructor(public age:number){
        super()
    }
}

const teacher = new Teacher(18)
console.log(teacher.age)

好了,以上就是这节我们所学的内容了,主要讲的就是类中的构造函数(也有叫构造器的),构造函数在工作中用的很多,所以你要学会并作充分的练习。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 11. TypeScript 类的构造函数

发表回复