Как связать функцию как свойство объекта

У меня есть функция, которая принимает свойство объекта, в этом объекте я хочу передать функцию в качестве одного из свойств. Я хотел бы выполнить функцию, когда свойство вызывается. Мне нужно связать функцию, так как этот контекст теряется до того, как функция будет выполнена.

    var myfunction = function () {
       console.log("Something");
    }

    // this works
    this.HeaderService.setState({
      leftButton: {
        click: this.myfunction.bind(this)
      }
    });

    // can't get this to work
    const self = this;
    this.HeaderService.setState({
      leftButton: {
        click() {
           return (function () {
              console.log("something");
           }).bind(this)
        }
      }
    })

Я могу заставить выражение функции работать, но я не могу получить второй случай, когда я хочу определить функцию как значение щелчка свойства. Как мне это сделать?

1 ответ

Решение

Продолжая то, что @JamieTorres предложил, функция со стрелкой решает проблему

 const self = this;
   this.HeaderService.setState({
      leftButton: {
        click: () => {
           return (function () {
              console.log("something");
           }).bind(this)
        }
      }
    })
Другие вопросы по тегам