"скинул "одному фронтендеру" который сказал что код написанный данным способом мягко говоря с ошибочно" - ммм, сейчас бы зайти на форум и на хрустальном шаре погадать, что же не понравилось некому "фронтендеру".
Kaizaki, суть не в запросах, а в том что все side effects в случае с промисами проявляются моментально, а Task это готовый к обработке объект задачи, запустить исполнение которой можно с помощью специального метода. Вот и вся разница.
Александр Таратин, я на самом деле не знаю, просто подумал, что если сам разработчик советует другой слайдер, значит там есть весь функционал. Но на сайте и правда нигде не нашел подобного.
Richard, "хочу вызвать events.index();" - вот есть у меня объект слайдера, хочу получить его текущий индекс, выполняю метод index и получаю результат взаимодействия этой функции с нужным мне объектом слайдера. А какой результат вам нужен при вызове этого метода в контексте вообще другого класса объектов? Как только вы объясните в чем смысл вызова index от лица экземпляра Events, так сразу и станет понятно что вы хотите сделать и как это реализовать. Upd: я посмотрел es5-код из примера, в принципе понятно что вы хотите сделать, но опять же непонятно зачем вам для этого нужен подкласс Events.
Нет, наследовать вы ничего не можете тут. Если вам нужно чтобы к экземпляру Events был привязан определенный экземпляр Slider (чтобы вызывать у него методы), то вам придётся как-то его передать, например в качестве аргумента при сборке экземпляра Events. Как я уже сказал, вообще не вижу смысла в структуре Slider -> Events, потому что она нелогична (в качестве примера логичной можете взять Creatures -> Animals -> Dogs), но если вы хотите связать два объекта, то вам придется сделать это явно, встроенных механизмов для этого не существует.
Раз вы хотите использовать наследование, то вы вполне можете минуя создание слайдера сразу создавать Events - new Events( slider ). Это не логично, но так вы сможете достичь желаемого.
Richard, "да, логика ясна, но все равно не работает" - я не знаю, что имел в виду s-jet, но его код смысла особенно не имеет, т.к. этот метод и так наследуется без объявления в подклассе, и всё как раз так и работает по умолчанию. Разница только в том, что в вашем коде вы вызываете этот метод у объекта у которого нет соответствующих свойств, не у слайдера.
"в консоли ошибка из-за super" - вы не можете вызвать этот метод не имея экземпляра суперкласса. И это логично. Поэтому я и спрашиваю у вас, что именно вы пытаетесь сделать.
Richard, все равно не понятно что вам нужно. По идее метод index имеет смысл только в контексте объекта Slider. Собственно, ООП как раз об этом: вызов метода вне экземпляра класса не имеет смысла, кроме случаев когда метод статический. Лучше расскажите какая цель, что именно вы пытаетесь сделать, может тогда станет понятно. Конечно, если у вас есть элемент слайдера, то вам сначала надо вызвать конструктор Slider, и уже потом у этого объекта вызывать нужные методы.
У вас в коде ошибка: в конструкторе нужно вызывать super, а не super.constructor.
"я не хочу получать его вот так new Events(slider), я хочу получить его методом наследования" - это и есть наследование: экземпляр класса Events имеет доступ к методу index.
Вы кажется немного неправильно организовали наследование, вам кажется совсем не нужно чтобы Events был подклассом класса Slider. Но это только догадки.
Старый стиль никуда не делся, вы можете реализовать всё то же самое, только стиль объявления изменился. Скажите, что именно нужно сделать? Вам нужно в теле конструктора Events вызвать конструктор Slider с аргументами переданными в Events?
"чтобы код работал корректно нужно указать контекст вот так new Events(slider).index()" - почему вы называете это указанием контекста? Вы просто передаёте slider в конструктор как аргумент.
cicatrix, на сервере? Звучит странно, но для этого можно на клиенте держать styleSheet и отключать соответствующее правильно в зависимости от, например, ответа сервера: document.styleSheets.item(i).disabled=true