#和private有什么区别?

先上代码:

javascript 复制代码
class Person {
    #salary: number
    constructor(salary: number, private name: string) {
        this.#salary = salary

        console.log(this.#salary) // 可以访问私有属性
        console.log(this.name) // 可以访问公共属性
    }
}

const person = new Person(1000, '张三'); 
// console.log(person.name); // 可以访问公共属性
console.log((person as any).name); // 可以访问公共属性
// console.log(person.#salary); // 报错,因为salary是私有的

看代码,两者区别很明显:

  • #属性不能在构造函数中定义
  • private属性,可通过as any强制获取,但#属性不行
    #私密程度比private高
相关推荐
hai74256 分钟前
通达OA批量导出PDF审批表单与批量打印功能组件介绍
前端
Dreamcatcher_AC8 分钟前
慢慢买项目:一站式开发指南
前端·javascript·mongodb·node.js
两个蝴蝶飞9 分钟前
Java量化系列(九):实现股票列表自动同步,精准监控新增、更名与退市动态
java·开发语言
烤麻辣烫9 分钟前
黑马大事件学习-19(文章)
前端·css·vue.js·学习·html
独自破碎E20 分钟前
Java对象是怎么在虚拟机中存储的?
java·开发语言
西西学代码23 分钟前
Flutter---折线图(使用外部库)
前端·javascript·flutter
坚持学习前端日记24 分钟前
Android JS桥技术深度解析
android·开发语言·javascript
兮动人35 分钟前
打破 OS 壁垒:Java 跨平台硬件信息采集的“终极方案”
java·开发语言
一路往蓝-Anbo1 小时前
STM32单线串口通讯实战(一):物理层拓扑与STM32G0硬件配置
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网
weixin_307779131 小时前
MATLAB动态演示流体扩散仿真模拟的简单例子
开发语言·matlab