#和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高
相关推荐
百锦再20 分钟前
Java中的日期时间API详解:从Date、Calendar到现代时间体系
java·开发语言·spring boot·struts·spring cloud·junit·kafka
NEXT0629 分钟前
普通函数与箭头函数的区别
前端·javascript·面试
A懿轩A38 分钟前
【Java 基础编程】Java 枚举与注解从零到一:Enum 用法 + 常用注解 + 自定义注解实战
java·开发语言·python
mjhcsp44 分钟前
C++ 树形 DP解析
开发语言·c++·动态规划·代理模式
全马必破三1 小时前
Webpack知识点汇总
前端·webpack·node.js
NEXT061 小时前
CommonJS 与 ES Modules的区别
前端·面试·node.js
TechFind1 小时前
如何为 AI Agent 写出完美的 SOUL.md 人格文件(2026指南)
javascript
猪头男1 小时前
【从零开始学习Vue|第八篇】深入组件——组件事件
前端
薛一半1 小时前
React三大属性之refs
前端·javascript·react.js
yaoxin5211231 小时前
328. Java Stream API - 使用 Optional 的正确姿势:为何、何时、如何使用
java·开发语言