MST

星途 面试题库

面试题:TypeScript 类静态成员与实例成员在复杂应用场景中的优化策略

在一个大型前端项目中,存在频繁创建和销毁的类实例,且部分数据需要在类的所有实例间共享,同时又有一些实例特有的数据。请结合 TypeScript 类的静态成员与实例成员,设计一个优化方案,说明如何合理分配静态成员和实例成员,以提高性能和代码的可维护性,并给出核心代码示例。
29.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

优化方案分析

  1. 静态成员:用于存储类所有实例间共享的数据。因为静态成员只在类级别存在一份,不会随着每个实例的创建而重复创建,从而节省内存空间,提高性能。
  2. 实例成员:用于存储每个实例特有的数据。每个实例都有自己独立的实例成员,互不干扰。

核心代码示例

class MyClass {
    // 静态成员,用于共享数据
    static sharedData: string = 'default shared data'; 

    // 实例成员,用于实例特有的数据
    instanceData: string; 

    constructor(instanceData: string) {
        this.instanceData = instanceData;
    }

    static getSharedData() {
        return MyClass.sharedData;
    }

    getInstanceData() {
        return this.instanceData;
    }
}

// 使用示例
const instance1 = new MyClass('data for instance 1');
const instance2 = new MyClass('data for instance 2');

console.log(instance1.getInstanceData()); 
console.log(instance2.getInstanceData()); 

console.log(MyClass.getSharedData()); 

在这个示例中,sharedData 是静态成员,所有 MyClass 的实例都共享这一份数据。instanceData 是实例成员,每个实例都有自己独立的 instanceData。通过这种方式,既能满足数据共享的需求,又能区分每个实例特有的数据,同时提升性能和代码可维护性。