位置:首页 > web前端 > javascript

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` 方法,观察日志输出。


24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看