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)
})()
建议读者复制上面代码运行,查看浏览器打印情况,结合文章解析能更深入了解。