装饰器(Decorator)是一种在 JavaScript 中常用的编程模式,它允许我们通过封装、扩展或修改现有函数或类的行为,而无需直接修改它们的源代码。装饰器模式提供了一种灵活的方式来修改对象的功能,同时也使得代码更加可维护和可扩展。
在 JavaScript 中,装饰器可以通过函数或类来实现。装饰器函数可以接收一个目标对象作为参数,并返回一个新的对象,该对象包含了对目标对象的修改。装饰器类可以直接继承目标类,并在子类中添加新的行为或修改现有行为。
下面我们将分别介绍函数装饰器和类装饰器的原理,并给出相应的示例代码。
- 函数装饰器
函数装饰器是一种应用于函数的装饰器。它接受三个参数:目标对象、属性名和属性描述符。我们可以在函数装饰器中修改目标函数的行为,例如添加额外的逻辑、修改返回值等。
下面是一个简单的函数装饰器示例代码:
function log(target, name