shi*_*iva 5 javascript typescript
我有以下 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);
Run Code Online (Sandbox Code Playgroud)
就编码风格和维护而言,我更喜欢在单元测试中使用构建器类的选项 1。选项 3 是最不受欢迎的,因为它是:
这三者之间有性能/内存差异吗?
对象实例创建在 JavaScript 引擎中进行了高度优化。速度会受到周围代码、运行频率、运行时版本和许多其他因素的影响。
\n\nI\xe2\x80\x99m 抱歉,这不是您想要的答案。
\n\n就内存而言,您可以简单地计算每种方法创建的对象 - 但除非您正在编写高度优化的 JavaScript 片段(不太可能),否则这将毫无意义。
\n\n通常,您选择的对象创建模式不应由性能驱动,而应由非功能性需求驱动,例如团队商定的代码风格、可维护性和 API 形状。
\n\n当然,用TS或JS编写的算法仍然可以按照通常的方式分析时间和空间复杂度。
\n| 归档时间: |
|
| 查看次数: |
2278 次 |
| 最近记录: |