#和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高
相关推荐
wuhen_n2 分钟前
高阶函数与泛型函数的类型体操
前端·javascript·typescript
无望__wsk4 分钟前
Python第一次作业
开发语言·python·算法
Word码11 分钟前
[C++语法]-vector(用法详解及实现)
开发语言·c++
代码雕刻家18 分钟前
4.3.多线程&JUC-多线程的实现方式
java·开发语言
梦65019 分钟前
网络传输七层协议
开发语言·网络·php
南 阳27 分钟前
Python从入门到精通day16
开发语言·python·算法
李少兄35 分钟前
Java 后端开发中 Service 层依赖注入的最佳实践:Mapper 还是其他 Service?
java·开发语言
不会c+1 小时前
@Controller和@RequestMapping以及映射
java·开发语言
POLITE31 小时前
Leetcode 437. 路径总和 III (Day 16)JavaScript
javascript·算法·leetcode
難釋懷1 小时前
解决状态登录刷新问题
java·开发语言·javascript