#和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高
相关推荐
SailingCoder1 天前
【 从“打补丁“到“换思路“ 】一次企业级 AI Agent 的架构拐点
大数据·前端·人工智能·面试·架构·agent
jz_ddk1 天前
[指南] Python循环语句完全指南
开发语言·python·continue·循环·for·while·break
chilavert3181 天前
技术演进中的开发沉思-368:锁机制(中)
java·开发语言·jvm
~央千澈~1 天前
抖音弹幕游戏开发之第12集:添加冷却时间机制·优雅草云桧·卓伊凡
java·服务器·前端
大黄说说1 天前
MySQL数据库运维管理基础知识:从安装到日常维护的完整指南
开发语言
HAPPY酷1 天前
C++ 多线程实战三板斧
java·开发语言·c++·技术美术
CappuccinoRose1 天前
CSS 语法学习文档(十三)
前端·css·学习·postcss·模块化·预处理器
OpenTiny社区1 天前
Angular Module→Standalone 架构进化解析
前端·架构·angular.js
独自破碎E1 天前
BISHI54货物堆放
android·java·开发语言
哆啦A梦15881 天前
Vue3魔法手册 作者 张天禹 06_监控
前端·vue.js·typescript