Typescript 中如何像C#一样用对象初始化器实现类的实例化
2021/10/27 22:13:58
本文主要是介绍Typescript 中如何像C#一样用对象初始化器实现类的实例化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
假设我有一个不含带参构造函数的类Class1,希望在某个地方实例化这个类 ,众所周知没有办法直接在new Class1()后面带参数来初始化这个类的.
当然我们可以直接构建js对象的方式来初始化c1,但如果只想要其中一部分成员变量赋值,typescript语法编译器会报告一个错误
为什么用new的方式不会报错呢?
我们先来看下new的时候解析器都做了什么操作:
- 创建一个空的简单JavaScript对象(即{});
- 为步骤1新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象 ;
- 将步骤1新创建的对象作为this的上下文 ;
- 如果该函数没有返回对象,则返回this。
所以可以理解为,用new方法创建对象的时候,调用了默认的构造函数,对象的成员已赋予默认值。
而第二种方式仅仅是将不含任何属性的js对象(即{})赋值给了目标地址,其实是只做了步骤1,typescript的解析器不知道如何给成员变量赋值。
解决方式:
创建一个初始化器函数:
然后在需要初始化的时候调用它:
验证:
我们已经用单行语句实现Class1的初始化了
这篇关于Typescript 中如何像C#一样用对象初始化器实现类的实例化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#