Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   В чем разница между двумя записями? (https://javascript.ru/forum/jquery/33379-v-chem-raznica-mezhdu-dvumya-zapisyami.html)

Shitbox2 21.11.2012 10:42

В чем разница между двумя записями?
 
Почему это
reader.onload = (function(aImg) {
    return function(e) {
       aImg.attr('src', e.target.result);
    };
})(img);

и это
reader.onload = function(e) {
    img.attr('src', e.target.result);
};

Работают по-разному?

ksa 21.11.2012 10:46

Цитата:

Сообщение от Shitbox2
В чем разница между двумя записями?

1. в onload записывается результат работы безымянной функции
2. в onload записывается указаная функция

Цитата:

Сообщение от Shitbox2
Работают по-разному?

Если безымянная функция вернет аналог 2-го варианта - будет работать одинаково...

Shitbox2 21.11.2012 16:44

Хм... У меня получалось, что второй вариант срабатывал только один раз, в то время как первый — каждый раз.

Aetae 21.11.2012 17:15

Ну разве что разницы, что первая продолжит работать, если переменная img будет перезаписана чем-нить ещё. В вашем случае скорее всего так и есть.

Shitbox2 21.11.2012 20:15

Ага! У меня как раз переменная перезаписывается!

danik.js 22.11.2012 06:56

Тоесть, в первом случае типа мы изолируем переменную( ссылку на объект )?

Хм, прикольно...


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