MST
星途 面试题库

面试题:JavaScript 模拟方法重载时的参数类型判断与处理

在 JavaScript 模拟类的方法重载过程中,如果需要根据不同参数类型执行不同逻辑(比如 `add` 方法既可以接受数字类型做加法,也可以接受字符串类型做拼接),应该如何实现?请详细说明实现思路并编写相应代码。
33.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

实现思路

在JavaScript中模拟方法重载实现根据不同参数类型执行不同逻辑,可以利用函数内部的 typeof 操作符判断参数类型,然后根据不同类型执行对应的逻辑。

代码实现

function Calculator() {
    this.add = function() {
        if (arguments.length === 2 && typeof arguments[0] === 'number' && typeof arguments[1] === 'number') {
            return arguments[0] + arguments[1];
        } else if (arguments.length === 2 && typeof arguments[0] ==='string' && typeof arguments[1] ==='string') {
            return arguments[0] + arguments[1];
        } else {
            throw new Error('不支持的参数类型');
        }
    };
}

// 使用示例
const calculator = new Calculator();
console.log(calculator.add(1, 2)); 
console.log(calculator.add('Hello, ', 'world'));