Decorators are a design pattern that is used to separate modification or decoration of a class without modifying the original source code. In Angular, decorators are functions that allow a service, directive or filter to be modified prior to its usage. Create decorator

function log(target,name,descriptor) {
  const original=descriptor.value;
  descriptor.value=function(...args) {
    console.log('this function is hacked')
    const result=original.apply(this,args)
    console.log("the result of the function is ", result);
    return result;
  return descriptor;

Usage of decorator

  sum(a,b) {
    return a+b;
//function overridden by decorator called

//output will be
this function is hacked
 the result of the function is  5