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` 方法,观察日志输出。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧