@PedroGarciyaLopez

Поясните пожалуйста, как здесь используется оператор new?

В документации marionette есть такой пример:
MyApp.addInitializer(function(options){
  new MyAppRouter();
  Backbone.history.start();
});

Не понимаю где в данном случае создается экземпляр MyAppRouter? Т.е. можно ли как-то получить на него ссылку? Если бы он был создан таким образом myApp.myAppRouter = new MyAppRouter(); то был бы доступен как свойство объекта myApp. А как в данном случае?
  • Вопрос задан
  • 2510 просмотров
Пригласить эксперта
Ответы на вопрос 3
aen
@aen
Keep calm and 'use strict';
Это просто прихоть автора документации. Этот пример взять из документации к Marionette.Application и он демонстрирует работу инициализаторов. Тут ссылка на сам роутер не нужна, потому экземпляр роутера создается таким образом.

Но даже этот код абсолютно рабочий, поскольку обычно в задачи роутера входит только реагирование на изменение роута. А биндинг этих изменений как раз и происходит при вызове конструктора.
Ответ написан
Комментировать
@dipwoodle
1. Человек написавший документацию не посчитал нужным, что объект роутера когда-либо понадобится, поэтому не записал в переменную.
2. Экземпляр MyAppRouter создается только в памяти.
3. Доступ к созданному объекту получить нельзя (по крайней мере публично).
4. В данном случае главная логика класса MyAppRouter содержится в конструкторе, поэтому никакой метод этого класса в будущем вызывать не нужно (по задумке автора).
5. А вообще это плохой пример, на практике так делать не хорошо.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Смотрите код MyAppRouter, скорее всего там ответ на ваш вопрос
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
10 мая 2024, в 11:47
500 руб./за проект
10 мая 2024, в 11:36
30000 руб./за проект
10 мая 2024, в 11:27
1000 руб./за проект