#和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高
相关推荐
胖方Hale2 分钟前
08. Typescript class 类
前端·typescript
用户52709648744902 分钟前
rsbuild-插件
前端
ACTORS2 分钟前
可视化大屏
前端
Whbbit19992 分钟前
hono 集成 Better Auth
javascript·后端
冰镇生鲜6 分钟前
Cursor 前端AI编程 最佳实践指南
前端·mcp·trae
Ronin3057 分钟前
【C++】13.list的模拟实现
开发语言·数据结构·c++·list
三思而后行,慎承诺9 分钟前
babel核心知识点
前端
胖方Hale12 分钟前
06. Typescript 联合类型、交叉类型、类型断言
前端·typescript
Star abuse13 分钟前
Python爬虫课程实验指导书
开发语言·爬虫·python
袁煦丞13 分钟前
3个月甩掉10万张纸质文件!这个开源神器让我从「文件坟墓」里爬出来了
前端·程序员·远程工作