#和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高
相关推荐
不绝1915 分钟前
延迟函数/协同程序
java·开发语言
魔力军5 分钟前
Rust学习Day5:结构体介绍和使用
开发语言·学习·rust
maplewen.7 分钟前
C++ 内存对齐
开发语言·c++
全栈前端老曹13 分钟前
【Redis】Redis 客户端连接与编程实践——Python/Java/Node.js 连接 Redis、实现计数器、缓存接口
前端·数据库·redis·python·缓存·全栈
老毛肚15 分钟前
java juc 01 进程与线程
java·开发语言
午安~婉16 分钟前
构图跟拍相关
前端·javascript·拍照·虚拟列表
1candobetter18 分钟前
JAVA后端开发——反射机制在Spring业务开发中的实际应用
java·开发语言·spring
css趣多多20 分钟前
ref和reactive
前端
leo_23221 分钟前
前端&前端程序--SMP(软件制作平台)语言基础知识之六十
前端·开发工具·企业信息化·smp(软件制作平台)·应用系统
Charlie_lll22 分钟前
学习Three.js–柱状图
前端·3d·three.js