MST

星途 面试题库

面试题:JavaScript 中装饰器模式如何在函数上实现基本功能增强

请用 JavaScript 代码实现一个简单的装饰器函数,给一个已有函数添加打印日志的功能,例如原函数是 `function add(a, b) { return a + b; }`,使用装饰器后每次调用该函数都会在控制台打印传入的参数和返回值。
39.9万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function logDecorator(targetFunction) {
    return function(...args) {
        console.log('传入的参数:', args);
        const result = targetFunction.apply(this, args);
        console.log('返回值:', result);
        return result;
    };
}

function add(a, b) {
    return a + b;
}

const decoratedAdd = logDecorator(add);
decoratedAdd(1, 2);