Задать вопрос
bootd
@bootd
Гугли и ты откроешь врата знаний!

Как быть с $(this) внутри стрелочных функций?

Добрый день. Наверно задам глупый вопрос, но очень стало интересно, как быть в подобной ситуации.

Допустим есть у меня класс:
class MyClass {
  constructor(){
    this.winWidth = null;

    this.init();
  }

  seyHello(){
    alert('Привет');
  }

  init(){
    $(window)
      .on('load', () => {
        this.winWidth = $(this).width();

        this.seyHello();
      })
  }
}


Значит, цель данного класса такая, при загрузке страницы, я хочу показать окошко с сообщением. Написал стрелочную функцию, что бы избавиться от контекста обычной функции и всё хорошо, а вот изменить свойство в конструкторе уже не смогу, т.к. $(this)ссылается на мой класс. Как писать код в подобной ситуации? В голову приходит только одна мысль, это создавать переменную let self = this; и ссылаться на неё.
  • Вопрос задан
  • 555 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Пригласить эксперта
Ответы на вопрос 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
через
$.proxy(function(){
  // this будет родитель объекта а не функции
},this)

или
var that = this;
до анонимной функции
внутри функции
that.showHello
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы