https://github.com/tc39/proposal-decorators#class-methods [[クラス (JavaScript)|クラス]]の[[メソッド (JavaScript)|メソッド]]に対して設定する[[デコレーター (JavaScript)|デコレーター]]。 サンプルコードは[[TypeScript]]の[[デコレーター (TypeScript)|デコレーター]]。 ```ts function logger(value: Function, context: ClassMethodDecoratorContext) { console.log("Execute logger"); return function (this: unknown, ...args: unknown[]) { console.log(`Execute ${context.name as string}(${args.join(",")})`); return value.call(this, ...args); }; } class Human { public constructor( public id: number, public name: string, ) {} @logger print(prefix: string, suffix: string) { console.log(`${prefix} << ${this.id}: ${this.name} >> ${suffix}`); } } console.log("Before initialize Human"); const h = new Human(180702, "hrks"); console.log("After initialize Human"); console.log("Before print"); h.print("👺", "👋"); console.log("After print"); ``` ```console Execute logger Before initialize Human After initialize Human Before print Execute print(👺,👋) 👺 << 180702: hrks >> 👋 After print ```