TS中class类的基本使用

想要创建对象,必须要先定义类,所谓的类可以理解为对象的模型,程序中可以根据类创建所指定类型的对象。

一、使用class关键字定义类

class 类名 {  }

// 使用class关键字来定义一个类
class Person{}// 使用new关键字创建一个对象
const per = new Person();
console.log(per);

二、定义属性

(一)定义实例属性

直接定义的属性是实例属性,需要通过对象的实例去访问

属性名 : 数据类型 = 属性值;     // 数据类型可以省略

class Person{// 直接定义的属性是实例属性,需要通过对象的实例去访问name: string = "寻霖";
}const per = new Person();
console.log(per.name);  // 寻霖

(二)定义静态属性

    使用static关键字开头的属性是静态属性
    静态属性可以直接通过类去访问,不可以通过实例对象去访问

static 属性名 : 数据类型 = 属性值;    // 数据类型可以省略

class Person{// 使用static关键字开头的属性是静态属性// 可以直接通过类去访问,不可以通过实例对象去访问static age: number = 18;
}console.log(Person.age);  // 18
const per = new Person();
console.log(per.age);  // 报错:属性“age”在类型“Person”上不存在

(三)设置属性只读

在属性名前加一个readonly关键字表示一个只读的属性不可修改

readonly 属性名 : 数据类型 = 属性值;

static readonly 属性名 : 数据类型 = 属性值;

在不设置readonly的情况下我们可以修改实例对象中的属性值

class Person{name: string = "寻霖";
}const per = new Person();
console.log(per.name);  // 寻霖
per.name = "XunLin";
console.log(per.name);  // XunLin

 设置了过后就不能够修改属性值,不论是实例属性还是静态属性

三、定义方法

(一)定义实例方法

直接定义的方法是实例方法,需要通过对象的实例去访问

方法名 () {  //方法体...  }

class Person{// 直接定义的方法是实例方法,需要通过对象的实例去访问sayHello() {console.log("hello");}
}const per = new Person();
per.sayHello();  // hello

(二)定义静态方法

    使用static关键字开头的方法是静态方法
    静态方法可以直接通过类去访问,不可以通过实例对象去访问

static 方法名 () {  //方法体...  }

class Person{// 使用static关键字开头的方法是静态方法// 静态方法可以直接通过类去访问,不可以通过实例对象去访问static sayHello() {console.log("hello");}
}Person.sayHello();  // hello
const per = new Person();
per.sayHello();  // 报错:属性“sayHello”在类型“Person”上不存在。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pikachu靶场——SSRF 服务端请求伪造

文章目录 1 SSRF 服务端请求伪造1.1 SSRF(curl)1.1.1 漏洞防御 1.2 SSRF(file_get_content)1.2.1 漏洞防御1.2.3 SSRF 防御 1 SSRF 服务端请求伪造 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&a…

【红外与可见光图像融合】离散平稳小波变换域中基于离散余弦变换和局部空间频率的红外与视觉图像融合方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Qwen-VL:多功能视觉语言模型,能理解、能定位、能阅读等

Overview 总览摘要1 引言2 方法2.1 模型结构2.2 输入输出 3 训练3.1 预训练3.2 多任务预训练3.3 监督finetune 4 评测4.1 图像文本描述和视觉问答4.2 面向文本的视觉问答4.3 指代表达理解4.4 视觉语言任务中的小样本学习4.4 现实用户行为下的指令遵循 5 相关工作6 总结与展望附…

【boost网络库从青铜到王者】第七篇:asio网络编程中的异步echo服务器,以应答为主

文章目录 1、简介2、echo模式应答异步服务器2.1、Session会话类2.2、Server类为服务器接收连接的管理类 3、客户端4、隐患5、总结 1、简介 前文已经介绍了异步操作的api,今天写一个简单的异步echo服务器,以应答为主。 2、echo模式应答异步服务器 2.1、…

小样本学习

一、基础知识 小样本学习(few shot learning)旨在使用先验知识(prior knowledge)基于有限数量的样本推广(generaling)到新任务(new task)。这些先验(prior knowledge&am…

初识C语言——详细入门(系统性学习day4)

目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍: 特点: 基本构成: 二、认识C语言程序 标准格式: 简单C程序: 三、基本构成分类详细介绍 (1)关键字 (2&#xf…

Blender导出FBX给UE5

最近在学习UE5的资源导入,总结如下: 建模使用Blender,UE5版本是5.3 1.纯静态模型导入UE5 Blender FBX导出设置保持默认即可, UE5把导入设置里Miscellaneous下Force Front XAxis和Convert Scene Unit勾选即可 2.带骨骼动画的模型…

字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言 2strlen函数 3.strcpy函数…

csdn未经允许将我的文章设置成vip收费

以前在csdn写了一些笔记,后来不用csdn了,想着留下这些笔记或多或少能帮助其他初学者,就没管它。结果csdn把文章设置成收费了,这个收费不是我本人弄的,是csdn弄的!我现在只能把这些文章删除掉了。

Docker初识

什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到…

Tungsten Fabric数据量过大问题处理初探

开源SDN系统Tungsten Fabric面临数据产生过多问题。 经排查,产生数据多出自analytics组件的Cassandra数据库()。很多分析数据会存储至Cassandra库,并持久化处理。 没有特殊调整的话,目录在 /var/lib/docker/volumes/analytics_database_an…

【大数据开发技术】实验04-HDFS文件创建与写入

文章目录 一、实验目标二、实验要求三、实验内容四、实验步骤 一、实验目标 熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS原理熟练掌握HDFS的API使用方法掌握单个本地文件写入到HDFS文件的方法掌握多个本地文件批量写入到HDFS文件的方法 二、实验要求 给出主要实验步骤成…

【新版】系统架构设计师 - 案例分析 - 架构设计<SOA与微服务>

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 架构设计<SOA与微服务>例题1例题2例题3例题4 架构 - 案例分析 - 架构设计<SOA与微服务> 这里SOA与微服务的例题只对应找寻了几个&#x…

一款强大的ntfs磁盘读写工具Paragon NTFS 15破解版百度网盘下载

今天再给大家分享一款NTFS工具Paragon NTFS 15,Paragon NTFS 15破解版是目前的最新版,需要的赶快收藏,地址失效可以留言。 Paragon Ntfs For Mac 15下载:https://souurl.cn/s84CCB Crcak链接: https://pan.baidu.com/s/1c2Hx7QBE…

计算机网络工程师多选题系列——计算机网络

2 计算机网络 2.1 网络技术基础 题型1 TCP/IP与ISO模型的问题 TCP/IP由IETF制定,ISO由OSI制定; TCP/IP分为四层,分别是主机-网络层、互联网络层、传输层和应用层;OSI分为七层,分别是物理层、数据链路层、网络层(实…

解决react报错“JSX 表达式必须具有一个父元素“

现象如下&#xff1a; 原因&#xff1a; 新插入的dom元素跟已有的dom元素平级了&#xff0c;必须创建一个共有的根元素 解决办法&#xff1a; 使用<> </>标签作为根元素&#xff0c;把所有子元素包裹起来 <> ....原代码 </> 问题解决&#xff01;…

手把手教你用 Milvus 和 Towhee 搭建一个 AI 聊天机器人!

作为向量数据库的佼佼者&#xff0c;Milvus 适用于各种需要借助高效和可扩展向量搜索功能的 AI 应用。 举个例子&#xff0c;如果想要搭建一个负责聊天机器人数据管理流程&#xff0c;Milvus 必然是首选向量数据库。那么如何让这个应用程序开发变得易于管理及更好理解&#xff…

Python PEP8 代码规范常见问题及解决方案

Win11查看安装的Python路径及安装的库 Python PEP8 代码规范常见问题及解决方案 Python3操作MySQL8.XX创建表|CRUD基本操作 Python3操作SQLite3创建表主键自增长|CRUD基本操作 anaconda3最新版安装|使用详情|Error: Please select a valid Python interpreter Python函数绘…

计算结构体大小:内存对齐详解

前言&#xff1a;不管在面试还是在升学的路上&#xff0c;内存对齐永远是结构体和联合体的热门考点&#xff0c;对于同样的结构体成员&#xff0c;他们相互之间的顺序位置不同就会导致整个结构体大小的不同&#xff0c;因此计算结构体联合体的字节大小就成为了一个有效的考点 目…

linux 清除卸载jenkins

1、停服务进程 查看jenkins服务是否在运行&#xff0c;如果在运行&#xff0c;停掉 查看服务 ps -ef|grep jenkins 停掉进程 kill -9 XXX2、查找安装目录 find / -name "jenkins*"3、删掉相关目录 删掉相关安装目录 rm -rf /root/.jenkins/# 删掉war包 rm -rf /…