news 2026/4/27 22:54:13

typescript-类的静态属性和静态方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
typescript-类的静态属性和静态方法

我们上一节看到了类,里面都是类的实例属性和实例方法,即需要实例化后才可以进行访问的。

什么是静态属性和静态方法?

静态属性和静态方法是不需要实例化就可以访问的属性和方法(不需要实例化是指不需要new来生成对象)。

还是以上一节的Person类举例,比如,人都有头发,且都是黑色头发(大家别强,就是黑色的,哈哈)

class Person { public static blackHair: string = "黑色头发"; public static washHair(): void { console.log("洗头发 ", Person.blackHair); } public grabHair(): void { console.log("抓头发 " + Person.blackHair); } } console.log(Person.blackHair); Person.washHair(); let person = new Person(); person.grabHair();
tsc index.ts

在浏览器控制台查看

可以看到,静态属性和方法不需要实例化就可以访问

静态属性和方法的用法-单例模式

这里举一个常用的小用法,会涉及到一些其他的知识,就是后面讲的访问权限以及设计模式

假设这样一个场景,在你的应用中,一个Person只能有一个实例对象,不可以实例多个,说白了你的应用中只能有一个人,这个世界上只能有一个人,不能有第二个,这个就要用到我们的单例模式了。看以下代码

class Person { private static instance = null; public hair: string = "黑色头发"; public static getInstance(): Person { if (!Person.instance) { Person.instance = new Person(); } return Person.instance; } private constructor() {} } console.log(Person.getInstance().hair);
tsc index.ts

查看控制台输出

以上的Person有一个公用的静态方法getInstance,以及一个私有的静态属性instance,这里的构造函数也是私有的,即不能直接在外面通过new来生成实例。这就保证了想要获取这个person的实例,只能用Person.getInstance()来获取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:54:23

Flutter---Scrollable

概念Scrollable是Flutter中处理滚动的抽象类abstract class Scrollable extends StatefulWidget {final AxisDirection axisDirection;final ScrollController? controller;final ScrollPhysics? physics;final ViewportBuilder viewportBuilder; }层次结构Scrollable├── …

作者头像 李华
网站建设 2026/4/23 22:33:04

【计算机毕业设计案例】基于Django+大数据的学习资源推送系统基于Django的在线学习资源分享与推荐系统(程序+文档+讲解+定制)

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/4/23 13:41:40

‌大模型测试中的“反馈闭环”:用户投诉如何系统性反哺模型?

在生成式AI大规模落地的2026年,软件测试的边界已从“功能验证”扩展至“体验演化”。用户投诉不再是客服工单的终点,而是大模型持续进化的‌核心燃料‌。‌一、闭环核心逻辑:从“被动响应”到“主动进化”‌传统软件测试依赖预设用例与回归验…

作者头像 李华
网站建设 2026/4/17 15:37:15

大数据毕设项目推荐-基于Django+大数据的学习资源推送系统课程视频、电子书籍【附源码+文档,调试定制服务】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/4/25 13:20:32

大数据毕设选题推荐:基于大数据技术的Django框架下的学习资源推送系统的设计与实现基于Django+大数据的学习资源推送系统【附源码、mysql、文档、调试+代码讲解+全bao等】

java毕业设计-基于springboot的(源码LW部署文档全bao远程调试代码讲解等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、…

作者头像 李华
网站建设 2026/4/18 7:34:47

还在手动搞MySQL主从切换?升级后的一键工具让你告别加班!

话不多说,直接执行! [rootmasterdb ~]# chmod x MYSQLSWTOOL.BIN [rootmasterdb ~]# ./MYSQLSWTOOL.BIN1、选择2,批量切换2、选择4,创建模板,开始执行这里看到切换成功了! 3、选择3可以看主从的切换状态可以…

作者头像 李华