MST

星途 面试题库

面试题:JavaScript 中如何模拟类的方法重载

请简述在 JavaScript 中模拟类方法重载的基本思路,并给出一个简单示例代码,例如一个 `Calculator` 类,需要有 `add` 方法,能够实现接受一个参数或两个参数的不同加法操作。
30.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 基本思路
    • 在JavaScript中,函数本身不支持传统意义上的重载,因为函数名是唯一确定函数的标识。
    • 可以通过检查传入参数的个数或类型来实现类似重载的效果。在函数内部使用arguments.length获取参数个数,或者使用typeof等方法检查参数类型,然后根据不同情况执行不同的逻辑。
  2. 示例代码
class Calculator {
    add() {
        if (arguments.length === 1) {
            return arguments[0] + 10;
        } else if (arguments.length === 2) {
            return arguments[0] + arguments[1];
        }
    }
}

// 使用示例
let calculator = new Calculator();
console.log(calculator.add(5)); // 输出15
console.log(calculator.add(3, 7)); // 输出10