#和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高
相关推荐
Mike_jia2 分钟前
LiteOps:轻量级CI/CD平台,重塑开发运维新体验
前端
daad7776 分钟前
rcu 内核线程
java·开发语言
浮游本尊9 分钟前
React 18.x 学习计划 - 第十四天:实战整合与进阶收尾
前端·学习·react.js
xzjiang_36510 分钟前
检查是否安装了MinGW 编译器
开发语言·qt·visual studio code
百锦再37 分钟前
Java JUC并发编程全面解析:从原理到实战
java·开发语言·spring boot·struts·kafka·tomcat·maven
清水白石0081 小时前
突破性能瓶颈:深度解析 Numba 如何让 Python 飙到 C 语言的速度
开发语言·python
Eternity∞1 小时前
Linux系统下,C语言基础
linux·c语言·开发语言
wangluoqi2 小时前
c++ 树上问题 小总结
开发语言·c++
Go_Zezhou3 小时前
pnpm下载后无法识别的问题及解决方法
开发语言·node.js