MST

星途 面试题库

面试题:TypeScript中类的实例方法与实例属性的区别基础应用

请定义一个TypeScript类,包含一个实例属性和一个实例方法。实例属性为字符串类型,用于存储用户名;实例方法用于打印出'Hello, [用户名]'。然后创建该类的实例并调用实例方法。同时说明在这个过程中,实例属性和实例方法在内存分配和使用场景上的区别。
22.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class User {
    // 实例属性,用于存储用户名
    username: string;

    // 构造函数,初始化实例属性
    constructor(username: string) {
        this.username = username;
    }

    // 实例方法,打印问候语
    greet() {
        console.log(`Hello, ${this.username}`);
    }
}

// 创建类的实例
const user = new User('John');
// 调用实例方法
user.greet();

实例属性和实例方法在内存分配和使用场景上的区别:

  • 内存分配
    • 实例属性:每个实例都有自己独立的一份实例属性的拷贝。例如当创建多个User实例时,每个实例的username属性在内存中占据不同的空间。
    • 实例方法:实例方法在内存中只有一份拷贝,所有实例共享该方法。不同实例调用该方法时,只是传递不同的this上下文(这里this指向调用该方法的实例),但方法代码本身是共享的。
  • 使用场景
    • 实例属性:用于存储每个实例特有的数据。比如每个用户的不同用户名,用户的个性化设置等。
    • 实例方法:用于定义对实例属性进行操作或基于实例状态执行特定行为的逻辑。比如根据不同用户名打印个性化问候语,或者基于用户当前状态执行某些业务逻辑操作。