#和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高
相关推荐
AAA阿giao9 分钟前
从“拼字符串”到“魔法响应”:一场数据驱动页面的奇幻进化之旅
前端·javascript·vue.js
donecoding9 分钟前
解决 npm 发布 403 错误:全局配置 NPM Automation Token 完整指南
前端·javascript
火山灿火山9 分钟前
Qt常用控件(五) - 多元素控件
开发语言·qt
熬了夜的程序员9 分钟前
【Rust学习之路】序
开发语言·后端·学习·rust
潜水豆11 分钟前
浅记录一下专家体系
前端
梨子同志12 分钟前
Node.js 事件循环(Event Loop)
前端
北慕阳12 分钟前
背诵-----------------------------
java·服务器·前端
say_fall12 分钟前
C语言编程实战:每日一题:用栈实现队列
c语言·开发语言
JS_GGbond14 分钟前
Vue3 组件入门:像搭乐高一样玩转前端!
前端·vue.js
deng-c-f14 分钟前
C/C++内置库函数(4):c++左右值及引用的概念、move/forward的使用
c语言·开发语言·c++