装饰器语法使用 @ 符号,可以附加到类、类方法、类属性等。它们是一种语法糖,可以通过函数来定义。
以下是一个简单的装饰器示例:
// 装饰器函数
function myDecorator(target) {
target.decorated = true;
}
// 使用装饰器修饰类
@myDecorator
class MyClass {
// 类的定义
}
// 访问修饰后的类
console.log(MyClass.decorated); // 输出: true
在这个例子中,myDecorator 是一个装饰器函数,它接受一个参数 target,通常是类本身。通过 @myDecorator,我们将装饰器应用于 MyClass 类,使其具有 decorated 属性。
装饰器可以有多个,它们按照从上到下的顺序应用。装饰器可以是函数,也可以是表达式。装饰器表达式在运行时被求值,其结果被当作函数应用到被修饰的类、方法或属性上。
请注意,装饰器目前仍然是 ECMAScript 的一个提案,并不是标准的语言特性。在写这段回答时,装饰器的提案还处于 TC39(ECMAScript 标准化委员会)的 Stage 2 阶段。因此,其语法和行为可能会发生变化。
转载请注明出处:http://www.zyzy.cn/article/detail/6266/ES6