#和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高
相关推荐
麒qiqi几秒前
从 C 基础到 ARM Linux 驱动开发:嵌入式开发核心知识点全解析
java·开发语言
寻寻觅觅☆1 分钟前
东华OJ-基础题-86-字符串统计(C++)
开发语言·c++·算法
真智AI5 分钟前
用 FAISS 搭个轻量 RAG 问答(Python)
开发语言·python·faiss
m0_647057969 分钟前
uniapp使用rich-text流式 Markdown 换行问题与解决方案
前端·javascript·uni-app
shilei_c14 分钟前
qt qDebug无输出问题解决
开发语言·c++·算法
pop_xiaoli15 分钟前
effective-Objective-C 第一章阅读笔记
开发语言·笔记·ios·objective-c·cocoa·xcode
jghhh0116 分钟前
基于C#的CAN总线BMS上位机开发方案
开发语言·c#
serve the people16 分钟前
python环境搭建 (七) pytest、pytest-asyncio、pytest-cov 试生态的核心组合
开发语言·python·pytest
java1234_小锋19 分钟前
分享一套不错的基于Python的Django宠物信息管理系统
开发语言·python·宠物
一切尽在,你来21 分钟前
C++ 零基础教程 - 第4讲-实现简单计算器
开发语言·c++