Typescript学习笔记(8)-属性的封装(属性的修饰符)
属性的封装(属性的修饰符)以及属性定义语法糖
对象
实质上就是属性和方法的容器
,它的主要作用就是存储属性和方法
,这就是所谓的封装
- 在默认情况下,对象的属性是
可以任意的修改
的,这会将会导致对象中的数据变得非常不安全 - 为了确保数据的安全性,在
TS
中新增了几个可以对属性的权限进行设置
的修饰符
TS
中属性具有三种修饰符
public
(公开属性,默认值): 修饰的属性可以在任意位置访问(修改) 默认值
// 1. 公开属性(public): public 修饰的属性可以在任意位置访问(修改) 默认值 |
private
(私有属性): 私有属性,私有属性只能在类内部进行访问(修改)- 通过在类中
添加方法
(类似于原型中的get
或set
)使得私有属性可以在规定下被外部访问或修改,这就是属性存取器
- 属性存取器
- 对于一些不希望被任意修改的属性,可以将其设置为
private
- 直接将其设置为
private
将导致无法再通过对象修改其中的属性 - 我们可以在类中定义一组读取、设置属性的方法,这种对属性读取或设置的属性被称为
属性的存取器
- 读取属性的方法叫做
getter
方法,设置属性的方法叫做setter
方法(类似于js原型
里面的getter
和setter
)
- 对于一些不希望被任意修改的属性,可以将其设置为
- 这样就保证了,属性的读取和修改必须遵循管理者(设计者)的规范去读写,保证属性的安全以及代码的严谨,尤其是对一些非常敏感的数据,如金钱,年龄等…..
- 通过在类中
// 2. 私有属性(private): private 私有属性,私有属性只能在类内部进行访问(修改) |
protected
(保护属性): 受保护的属性,只能在当前类和当前类的子类中访问(修改)- 在类属性或方法前面添加
protected
关键字,来修饰该属性是受保护的 - 在子类的方法内部可以通过
this
来访问父类中受保护的成员,但是对实例是不可见的
- 在类属性或方法前面添加
// 3.保护属性(protected): protected 受保护的属性,只能在当前类和当前类的子类中访问(修改) |
属性定义的语法糖(constructor
)
- 相较于原先类中定义属性的方法,现在我们可以直接将属性的定义写在构造函数中
代码展示:
// 4.定义类的属性的新语法糖(直接将属性写进构造函数中) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。转载请注明来自 肥林の仓库