Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 22.07.2017
Сообщений: 57

JS - "TypeError: this is undefined". Observer

15.05.2020, 13:03. Показов 1468. Ответов 1

Студворк — интернет-сервис помощи студентам
Возникла следующая проблема.
Есть клас MainClass, в котором я подписую обьекты на событие изменения времени.
Кода событие происходит вызывается метод OnTimeChanged, в котором обращается к полю своего класа time.
Тут и возникает ошибка:
TypeErrorTypeError: this is undefined

Толи неправильно реализовал Observer, толи обращаюсь както не так.

JavaScript
1
2
3
4
5
6
7
8
class SomeObject{
   constructor() {
        this.time= 0;
    }
   OnTimeChanged(time){
        this.time += time;
   }
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
class MainClass{
    constructor() {
        this.observer = new Observer();
        var obj = new SomeObject();
        this.observer.Subscribe(obj.OnTimeChanged);
    }
 
    Draw(){
        // do domething ...
 
        this.observer.Notify(res);
    }
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
class Observer {
    constructor() {
        this.observerList = [];
    }
 
    Subscribe(f) {
        this.observerList.push(f);
    }
 
    Notify(data) {
        this.observerList.forEach(observer => observer(data));
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2020, 13:03
Ответы с готовыми решениями:

TypeError: e is undefined
TypeError: e is undefined, jquery.min.1.9.1.js (строка 3) Я так понял эта ошибка означает что "е" не определенна, Я не понимаю где...

Ошибка: [TypeError]: this is undefined
Разрабатываю приложение в WebStorm, при запуске ng serve и открытии приложения на запущенном сервере (порт 4200), всё работает хорошо, но...

TypeError: $(.).offset(.) is undefined
Привет, делаю счетик когда считаеться количество от ноля до 200, и не могу понять почему не работает вот разметка <?php $facts = new...

1
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
15.05.2020, 13:19
Лучший ответ Сообщение было отмечено BeardVis как решение

Решение

Цитата Сообщение от BeardVis Посмотреть сообщение
JavaScript
1
this.observer.Subscribe(obj.OnTimeChanged);
JavaScript
1
this.observer.Subscribe(() => obj.OnTimeChanged);
или
JavaScript
1
this.observer.Subscribe(obj.OnTimeChanged.bind(obj));
Добавлено через 1 минуту
На почитать про this
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2020, 13:19
Помогаю со студенческими работами здесь

TypeError: i.current is undefined
Третий день воюю с галереей на сайте, ни чего не получается. Проблема такая на главной странице сайта галерея - лента с бесконечной...

TypeError: Cannot read property 'get' of undefined
TypeError: Cannot read property 'get' of undefined at SteamTradeOffers.doAPICall (/bot/node_modules/steam-tradeoffers/index.js:492:19) ...

Uncaught TypeError: undefined is not a function
В общем хочу сделать следующее: раз в 10 сек отправляется запрос к серверу, полученный JSON превращается с помощью плагина JQuery Tmpl в...

TypeError: document.getElementsByName(...)[0] is undefined
Всем привет, подскажите пожалуйста в чем ошибка, нужно забивать данные пользователя на N ресурсах, в ручную устал это делать потому что вся...

TypeError: element.style is undefined
Подскажите, почему консоль выдает ошибку: TypeError: fillBar.style is undefined song.addEventListener('timeupdate',function(){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru