Получить название метода объекта из кода

Можно ли в коде метода объекта класса языка JavaScript получить название вызываемого метода?


Ответы (1 шт):

Автор решения: Mark Minerov

Такое возможно реализовать через Proxy:

class User {
  constructor(name, surname) {
    this.name = name
    this.surname = surname
  }

  fullName() {
    return `${this.name} ${this.surname}`
  }
}

let user = new User("Mark", "Minerov")

user = new Proxy(user, {
  get(target, property) {
    if (typeof target[property] === 'function') {
      console.log(`function ${property} was called!`)
    }

    return target[property]
  }
})

console.log(user.fullName())

→ Ссылка