gpt4 book ai didi

javascript - TypeScript 中哪种创建对象实例的方式最快?

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:13 24 4
gpt4 key购买 nike

我有以下 3 种不同的方法来创建对象实例。

我想知道其中哪一个更快,占用的内存更少,为什么?

//Option 1        
export interface Animal1 {
name: string;
color: string;
isHungry: boolean;
}
let animal: Animal1 = {
name: 'cat',
color: 'brown',
isHungry: true
};

//Option 2
export class Animal2 {
name: string;
color: string;
isHungry: boolean;
}
let animal2: Animal2 = new Animal2();
animal2.name = 'cat';
animal2.color = 'brown';
animal2.isHungry = true;

//Option 3
export class Animal3 {
constructor(public name:string, public color:string, public isHungry:boolean) {}
}
let animal3 = new Animal3('cat', 'brown', true);

就编码风格和维护而言,我更喜欢选项 1 在单元测试中使用构建器类。选项 3 是最不受欢迎的:

  • 很难轻松创建对象,您必须设置所有属性
  • 难以维护,每次添加新属性时都需要更新每个实例创建
  • 容易出错,当具有相同类型的属性数量很多时,例如字符串、字符串、字符串。您可能设置了错误的属性。

这三者在性能/内存上有什么区别吗?

最佳答案

在一般意义上,不可能说哪个“最快”。

对象实例的创建在 JavaScript 引擎中得到了高度优化。速度会受到周围代码、运行频率、运行时版本等诸多因素的影响。

很抱歉这不是您想要的答案。

就内存而言,您可以简单地计算每种方法创建的对象 - 但除非您正在编写一段高度优化的 JavaScript(不太可能),否则这将没有实际意义。

通常,您选择的对象创建模式不应由性能驱动,而应由非功能性需求驱动,例如团队商定的代码风格、可维护性和 API 形状。

当然,用TS或者JS写的算法还是可以按照通常的方式分析时空复杂度。

关于javascript - TypeScript 中哪种创建对象实例的方式最快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com