#和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高
相关推荐
0思必得013 小时前
[Web自动化] Selenium浏览器复用
前端·python·selenium·自动化
froginwe1113 小时前
装饰器模式
开发语言
之歆13 小时前
Linux 系统安装、故障排除、sudo、加密、DNS 与 Web 服务整理
linux·运维·前端
枫叶丹413 小时前
【Qt开发】Qt界面优化(三)-> Qt样式表(QSS) 设置方式
c语言·开发语言·c++·qt·系统架构
OpenTiny社区13 小时前
TinyEngine 2.10 版本发布:零代码 CRUD、云端协作,开发效率再升级!
前端·vue.js·低代码
-小麦子-14 小时前
Python 变量组包、解包及星号扩展机制详解
开发语言·python
哟哟-14 小时前
Nginx配置:静态文件访问时动态添加时间戳
运维·前端·javascript·nginx
码云数智-园园14 小时前
自助建站哪个好?三款主流自助建站对比评测
前端
肆忆_14 小时前
C++ 汇编层面与语法语义层面总结:this指针 模板 块级作用域 引用
前端
用户40993225021214 小时前
Vue中默认插槽、具名插槽、作用域插槽如何区分与使用?
前端·vue.js·github