#和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高
相关推荐
csbysj20204 小时前
DOM 解析器错误
开发语言
辰同学ovo4 小时前
Pinia极速入门:核心概念与入门指南
前端·javascript·vue.js
Дерек的学习记录4 小时前
二叉树(下)
c语言·开发语言·数据结构·学习·算法·链表
葡萄成熟时 !4 小时前
JDK时间类
java·开发语言
气派飞鹰4 小时前
windows下C++个人开发最佳实践(CMake+vcpkg+trae)
开发语言·c++·个人开发
余瑜鱼鱼鱼4 小时前
Thread类中run和start的区别
java·开发语言·前端
n 55!w !1084 小时前
js练习作业
开发语言·javascript·ecmascript
计算机程序设计小李同学4 小时前
基于位置服务的二手图书回收平台
java·前端·vue.js·spring boot·后端
Whisper_Sy4 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 月报告实现
android·开发语言·javascript·网络·flutter·ecmascript
灰灰勇闯IT4 小时前
【Flutter for OpenHarmonyDart 入门日记】第5篇:字典类型 Map 与动态类型 dynamic 全解析
开发语言·javascript·ecmascript