1
ich eine Klasse Dekorateur und möchte es benutzen einen anderen Dekorateur auf alle Methoden innerhalb der Klasse zu bewerben, aber ich bin mir nicht ganz sicher, wie ein Dekorateur programmatisch ohne die @ Syntax anwenden:js anwenden Dekorateur programmatisch
@LogAllMethods
class User {
greet() {
console.log('Hello')
}
}
function LogAllMethods(target) {
for (const key in Object.keys(target.prototype)) {
// apply LogMethod decorator
}
}
function LogMethod(target, key, descriptor) {
let method = descriptor.value
decriptor.value = function(...args) {
console.log(args)
method.apply(this, ...args)
}
}
haben Sie ES5 oder ES2015 Ziel? –
Sie verwenden nicht '@' Syntax, um es programmgesteuert zu tun. Sie überprüfen die Spezifikation für das, was die '@' Syntax tut, dann tun Sie das vom Code. – Bergi