js: public、private、protected 定义和区别

public、private、protected是一些关键字,用于定义类中的属性和方法的访问权限

public:是默认的访问修饰符,表示属性或方法可以在类的内部和外部被访问。这意味着可以在类的实例化对象中直接访问该属性或方法,也可以通过类的实例化对象的引用访问。

class Person {public name: string = 'xiaoming';public sayHello() {console.log('Hello', this.name);}
}class Student extends Person {public introduce() {console.log('i am' + this.name);}
}const per = new Person();console.log(per.name); // xiaoming
console.log(per.sayHello()); // Hello xiaomingconst stu = new Student();
console.log(stu.name); // xiaoming
console.log(stu.sayHello()); // Hello xiaoming
console.log(stu.introduce()); // i am xiaoming

private:是私有的访问修饰符,表示属性或方法只能在类的内部被访问。这意味着不能在类的实例化对象中直接访问该属性或方法,也不能通过类的实例化对象的引用访问。私有属性和方法通常用于隐藏类的内部实现细节,只允许通过公共方法来访问。

class Person {private name: string = 'xiaoming';public sayHello() {console.log('Hello', this.name);}
}class Student extends Person {public introduce() {console.log('i am' + this.name);}
}const per = new Person();console.log(per.name); // 外部不能访问private属性和方法
console.log(per.sayHello()); // 通过公共方法能访问private属性和方法const stu = new Student();
console.log(stu.name); // 子类不能访问父类private属性和方法
console.log(stu.sayHello()); // Hello xiaoming
console.log(stu.introduce()); // 子类内外部都不能访问父类的private属性和方法

protected:是受保护的访问修饰符,表示属性或方法可以在类的内部和子类的内部中被访问。这意味着可以在类的实例化对象中直接访问该属性或方法,也可以通过子类的实例化对象的引用访问。受保护的属性和方法通常用于定义类的内部状态,只允许类的子类访问。


class Person {protected name: string = 'xiaoming';public sayHello() {console.log('Hello', this.name);}
}class Student extends Person {public introduce() {console.log('i am' + this.name);}
}const per = new Person();console.log(per.name); // 外部不能访问protected属性和方法
console.log(per.sayHello()); // 通过公共方法能访问protected属性和方法const stu = new Student();
console.log(stu.name); // 子类外部不能访问父类protected属性和方法
console.log(stu.sayHello()); // Hello xiaoming
console.log(stu.introduce()); // i am xiaoming 子类内部方法都访问父类的protected属性和方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1560693.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘胆囊结石的中医智慧:传统疗法如何化解“石”难

在现代医学快速发展的今天,中医作为一门历史悠久的医学体系,依然在治疗多种疾病中展现出独特的魅力。胆囊结石,这一困扰着无数人的健康问题,正是中医治疗的亮点之一。本文将带您走进中医的世界,探索胆囊结石的中医治疗…

GEE 错误:Can‘t transform (11121.0,18905.0),Can‘t transform (-1.0,-1.0)

目录 错误 原始代码链接 原始代码 解决方案 函数 SampleRegions(collection, properties, scale, projection, tileScale, geometries) Arguments: Returns: FeatureCollection 修改后的代码 结果 错误 我正在尝试从乌干达 888 户家庭的 VNP21A1 每日温度数据集中提…

第 2 章 基础支持层(下)

2.6 DataSource MyBatis 提供了两个 javax.sql.DataSource 接口实现,分别是 PooledDataSource 和 UnpooledDataSource。MyBatis 使用不同的 DataSourceFactory 接口实现创建不同类型的 DataSource。 2.6.1 工厂方法模式 在工厂方法模式中,定义一个用于…

ssm题库管理系统的设计与实现

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 摘 要 I Abstract II 1 绪论 1 1.1课题研究背景和来源 1 1.2课题研究现状 1 1.3课题开发的目的和意…

大贤3D家谱-关于节点

节点释疑: 父-代表父亲,位置在节点上方 母-代表母亲,位置在节点上方 夫-代表丈夫,位置在节点左前方 妻-代表妻子,位置在节点左前方 兄-代表兄弟,位置在节点右侧 姊-代表姐妹,位置在节点右…

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

创意多元化是提升Facebook广告销量的关键

在投放Facebook广告的时候,我们面向的受众是非常广泛的,用户的需求也是非常多样的,打个比方,同样是买一件衣服,有的人注重款式,喜欢新颖的设计;有的人注重质量,更关心面料材质&#…

重学SpringBoot3-集成Redis(七)之分布式限流

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(七)之分布式限流 1. 什么是分布式限流?2. 常见的限流算法3. Redis 分布式限流实现3.1. 添加依赖3.2. 配置…

Qt-窗口对话框QMessageBox的使用(51)

目录 前言 描述 使用 自定义按钮 简单方式创建 前言 Qt 提供了多种可复⽤的对话框类型,即 Qt 标准对话框。Qt 标准对话框全部继承于 QDialog类。常⽤标准对话框如下: 描述 消息对话框 QMessageBox 消息对话框是应⽤程序中最常⽤的界⾯元素。消息…

微信点赞的测试用例,应该在哪些方面进行设计!

功能模块测试的测试用例设计方法包括: 等价类划分法:把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一个部分中选取少数具有代表性的数据作为测试用例。比如字符串长度检查,字符类型检查,标点符号检查,特殊字符检查…

活动预告丨第二十八期 “CCF 开源高校行”暨“木兰技术开放日”活动走进北京大学...

点击蓝字 关注我们 CCF Opensource Development Committee 开源高校行 北京大学站 在数字化转型的浪潮中,开源软件人才的培养是信息技术创新发展的重要根基,高校学子作为我国开源生态的源头活水备受重视。10月9日下午15:00-17:10 “CCF 开源高校行”暨“…

318页PPT5G智慧校园顶层设计方案

2019年,中共中央、国务院印发的《中国教育现代化2035》提出从构建更为完善信息化基础环境、配置学校数字教学资源、建立学校信息化系统运行维护长效机制、统筹建设一体化智能化教学和管理与服务平台等方面建设智能化校园。因此,未来随着信息通信技术的不…

Java项目实战II基于Java+Spring Boot+MySQL的中药实验管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 中药作为中…

龙迅LT8911EXB 高性价比方案MIPICSI/DSI转EDP 1.4 大批量出货产品

龙迅LT891EXB描述: Lontium LT8911EXB是MIPIDSI/CSI到eDP转换器,单端口MIPI接收器有1个时钟通道和4个数据通道,每个数据通道最大运行2.0Gbps,最大输入带宽为8.0Gbps。转换器解码输入MIPI RGB16/18/24/30/36bpp、YUV422 16/20/24b…

huohuo

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

C++网络编程之套接字基础

概述 在网络编程中,套接字(Socket)是一种用于进程间通信的接口。套接字是操作系统提供的一种抽象层,它允许不同计算机之间的进程通过网络进行通信。套接字实际上并不神秘,简单来说,套接字是连接网络中不同主…

网络安全 IP地址防泄漏指南

IP地址作为每个上网人的“门牌标识号”,如果产生泄露,可能会导致个人行踪曝光、数据被窃取甚至遭受网络攻击,要防止IP地址不被窃取,我们可以尝试以下方法: 利用专用网络加强隐私保护 通过加密在公共网络上创建一条安全…

利用LangSmith Chat数据集轻松微调模型

在这篇文章中,我们将探讨如何使用LangSmith Chat数据集来微调AI模型,并将其应用于LangChain应用中。这个过程简单易行,只需三个步骤:创建聊天数据集、加载示例并微调模型。 引言 随着对聊天AI需求的增加,能够通过特定…

怎样在不改变使用习惯的前提下,实现替代FTP的操作?

但国家信创要求出台后,“28N”行业领域已陆续实现信创国产化的替代,从操作系统到CPU、数据库等,下一步,可能就会落实到引用层面,这时候,作为文件传输关键载体的FTP就不得不考虑信创国产化替代的问题。 那么…

如何采集1688商品的多语言数据

访问1688官网的数据,是中文的商品数据,如果直接采集1688的中文商品数据,还需要自己翻译数据,翻译标题,描述,格式化数据等比较麻烦 教大家一种新的方式,1688在2023年底已经开通了跨境专供&#…