Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   таки опять вопрос про this (https://javascript.ru/forum/misc/30916-taki-opyat-vopros-pro.html)

LittlePony 20.08.2012 16:09

Цитата:

Сообщение от nerv_ (Сообщение 199051)
LittlePony, мы же тебе уже сказали и даже показали :)

Да, большое спасибо. Мне просто нужно было понять и разобраться. До сих пор не было опыта разработки на js, а бездумно копировать и тем самым плодить некрасивого цвета код не люблю. Если уж возникла необходимость писать на js, то считаю нужным разобраться и понять, что это такое и с чем его едят. С первого раза не получилось, а сейчас вроде начинаю понимать.
Спасибо за помощь и терпение.

nerv_ 20.08.2012 16:12

Цитата:

Сообщение от LittlePony
Да, работает. И кажется я даже начинаю понимать, почему это работает, мой вариант выше работает, а первый вариант не работал. Большое спасибо!
Скажите, правильно ли я теперь понимаю?
Вариант:
var t=this;
var autoslideTimer = setInterval(function(){t.SwitchTo()},this.options. autoslideDelay)

Здесь в переменной t уже вполне определённый объект, который до применения setInterval был определён как this, который в тот момент однозначно указывал на сам объект PromoBlock(и будет на него указывать, как его ни обозвать), у этого объекта есть метод SwitchTo, который и вызывается в контексте объекта, который из t уже никуда не денется, как бы setInterval ни менял контекст.

Вариант же мой рабочий — это почти то же самое, но расписанное большим количеством шагов.

все то же http://javascript.ru/forum/misc/3088...tml#post198847

nerv_ 20.08.2012 16:14

Цитата:

Сообщение от LittlePony
Да, большое спасибо. Мне просто нужно было понять и разобраться. До сих пор не было опыта разработки на js, а бездумно копировать и тем самым плодить некрасивого цвета код не люблю. Если уж возникла необходимость писать на js, то считаю нужным разобраться и понять, что это такое и с чем его едят. С первого раза не получилось, а сейчас вроде начинаю понимать.
Спасибо за помощь и терпение.

осознанной разработки ;)

p.s.: про this. Если он меняется, а тебе нужен конкретный, просто сохрани ссылку на нужный тебе this в переменной и пользуйся ей.


Часовой пояс GMT +3, время: 09:35.