Junior — Middle
106
Могу ли се декоратори користити само за методе класа или и за друге елементе?
Компаније где су питане
Бизнес-Азимут
Одговор од АИ
sobes.tech АИ
Декораторы в JavaScript (и Node.js) можно применять не только к методам классов, но и к другим элементам, в зависимости от поддержки и используемого синтаксиса. В стандарте ECMAScript декораторы изначально предназначены для классов и их методов, но в некоторых реализациях и с помощью транспайлеров (например, Babel) можно применять декораторы к свойствам классов, параметрам методов и даже к самим классам.
Пример использования декоратора для метода класса:
function log(target, key, descriptor) {
const original = descriptor.value;
descriptor.value = function(...args) {
console.log(`Вызов ${key} с аргументами:`, args);
return original.apply(this, args);
};
return descriptor;
}
class Example {
@log
say(message) {
console.log(message);
}
}
const e = new Example();
e.say('Привет');
Таким образом, декораторы применимы не только к методам, но и к другим элементам классов, если среда выполнения или сборщик это поддерживает.