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)
好了,以上就是这节我们所学的内容了,主要讲的就是类中的构造函数(也有叫构造器的),构造函数在工作中用的很多,所以你要学会并作充分的练习。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 11. TypeScript 类的构造函数
码云笔记 » 11. TypeScript 类的构造函数