readonly修饰符:首先是一个关键字,对类中的属性成员进行修饰,修饰后,该属性成员,就不能在外部被随意的修改了
一 构造函数中,可以对只读的属性成员的数据进行修改
(()=>{//定义一个类型class Person {//属性readonly name: string//构造函数constructor(name: string) {this.name = name}}//实例化对象const person: Person = new Person('小米6666')console.log(person)console.log(person.name)})()
二 如果构造函数中的没有任何参数,类中的属性成员此时已经使用readonly进行修饰了。那么外部也是不能对这个属性进行更改了
(()=>{//定义一个类型class Person {//属性readonly name: string//构造函数constructor() {}}//此时无法更改,因为name属性是只读的person.name='大肘子'console.log(person.name)})()
三 构造函数中的参数可以使用readonly进行修饰,一旦修饰了,那么该类中就有了这个只读成员属性了,外部可以访问,但是不能修改
构造函数中的参数,一旦使用readonly进行修饰后,那么该name参数可以叫参数属性
构造函数中的参数,一旦使用readonly进行修饰后,那么Person中就有了一个name的属性
构造函数中的参数,一旦使用readonly进行修饰后,外部也是无法修改类中的name属性成员值的
(()=>{//定义一个类型class Person {//构造函数中的参数,一旦使用readonly进行修饰后,那么该name参数可以叫参数属性//构造函数中的参数,一旦使用readonly进行修饰后,那么Person中就有了一个name的属性//构造函数中的参数,一旦使用readonly进行修饰后,外部也是无法修改类中的name属性成员值的constructor(readonly name: string='大反派') {this.name = name}}//实例化对象const person: Person = new Person('小米')console.log(person)person.name='大肘子'console.log(person.name)})()
四 构造函数中的参数可以使用public,private和protected进行修饰,无论是哪个进行修饰,该类中都会自动的添加这么一个属性成员
(()=>{//定义一个类型class Person {//构造函数中的参数,一旦使用public进行修饰后,那么Person中就有了一个name的属性// constructor(public name: string='大反派') {// this.name = name// }//构造函数中的参数,一旦使用private进行修饰后,那么Person中就有了一个name的属性// constructor(private name: string='大反派') {// this.name = name// }//构造函数中的参数,一旦使用protected进行修饰后,那么Person中就有了一个name的属性成员了(只能在本类和派生类中访问以及使用)constructor(protected name: string='大反派') {this.name = name}}//实例化对象const person: Person = new Person('小米')console.log(person)person.name='大肘子'console.log(person.name)
})()
建议读者复制上面代码运行,查看浏览器打印情况,结合文章解析能更深入了解。