js如何写一个装饰器 js写装饰器的方法
dearweb 发布:2023-03-03 14:33:01阅读:装饰器是一种常用的函数包装方式,可以在不改变函数本身的情况下为其增加额外的功能。下面是一个使用 JavaScript 实现的装饰器的例子:
function logger(target, name, descriptor) { const original = descriptor.value; descriptor.value = function(...args) { console.log(`[${new Date()}] Calling "${name}" with arguments:`, args); const result = original.apply(this, args); console.log(`[${new Date()}] Return value of "${name}":`, result); return result; }; return descriptor; } class MyClass { @logger myMethod(x, y) { return x + y; } } const myObj = new MyClass(); myObj.myMethod(2, 3);
在上面的例子中,我们定义了一个装饰器函数 `logger`,它会在函数调用前后打印日志。然后我们在 `MyClass` 类的 `myMethod` 方法上应用了这个装饰器,使用 `@logger` 语法糖。最后我们创建了 `MyClass` 的一个实例,并调用了 `myMethod` 方法,观察日志输出。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧