MST

星途 面试题库

面试题:JavaScript 中使用class关键字定义类时如何优化构造函数

在JavaScript中,使用class关键字定义了一个简单的类,如下:class Person { constructor(name, age) { this.name = name; this.age = age; } } 现在假设在很多地方都会创建这个类的实例,如何优化这个构造函数,以提高性能,减少内存开销?请说明优化思路并给出优化后的代码。
18.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 优化思路

    • 当使用 class 关键字定义类时,每次通过构造函数创建实例,实例方法会被重新创建。可以将这些方法定义在 prototype 上,这样所有实例可以共享这些方法,减少内存开销。
  2. 优化后的代码

function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.someMethod = function() {
    // 这里定义实例方法,比如
    console.log(`Name: ${this.name}, Age: ${this.age}`);
};

在ES6 class 语法糖下,其实也遵循同样原理,只是语法更简洁,如下:

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    someMethod() {
        console.log(`Name: ${this.name}, Age: ${this.age}`);
    }
}

这种方式定义在类中的方法,实际上是被添加到类的 prototype 上,所有实例共享这些方法,从而提高性能并减少内存开销。