@EvelynWaugh

Как называется такой вид класса в js?

Вот класс, и там внутри return, я такого не вижу в документации на MDN, но оно как-то работает.
const TestUtil = function() {
    const testHandlers = [];

        const  _testHandlerInit = () => {
          console.log('works')
        }

    return {                       /////// С вот таким return

        init: function(settings) {
            _testHandlerInit ();
        },
      
      avrukh: function() {
        console.log('avg')
      }

    }
}
let util = new TestUtil();

util.init()  /// 'works'
util._testHandlerInit()   ///    Ошибка. Может return показывает к каким методам есть доступ а остальные вспомогальные?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Ну изначально в js класс - это просто функция возвращающая объект. По умолчанию это новый this, но можно и что угодно вернуть, чтобы запутать врага.)

Никак не называется, просто спорная фича языка.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@SUS_ITS_LOVE
Я не уверен, но кажеться что ты имеешь в виду клас с конструктором
Ответ написан
Комментировать
@DimaIs
Вы возвращаете новый обьект со следующей сигнатурой:
{      
        init: function,
        avrukh: function
}

При вызове init она имеет доступ к внутреннему контексту, в котором содержится testHandlers. Если вы хотите вызывать эту функцию у возвращаемого обьекта, то можно добавить этот метод в поле возвращаемого обьекта:
{      
        testHandlers: testHandlers,
        init: function,
        avrukh: function
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы