Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2012, 23:16
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Что обозначает код вида ()()
Небольшой кусочек:
var p = $('<p/>').appendTo(cont)
data.onload = (function(x) {
    return function(e) {
        x.attr('height', 100);
     };
})(p)

Получается что-то = ()(). Почему эта конструкция работает?
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2012, 23:34
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

Shitbox2,
Это т.н. немедленно вызываемая функция. Т.е. функция определяется и тут же вызывается.
Когда переменной или свойству объекта присваивается такая функция, например
var a = (function () {return "а"})();

то в переменной будет хранится не функция, а то что она возвращает, т.к функция запускается немедленно и самостоятельно (на это указывают круглые скобки справа). В данном случае возвращается строка "a", которая будет хранится в переменной a.
Конструкция работает, потому что позволяет синтаксис языка.
Такие функции могу принимать параметры, как в вашем примере (p), эти параметры доступны внутри функции.

Последний раз редактировалось Nubi, 30.10.2012 в 23:44.
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2012, 23:41
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Цитата:
Что обозначает код вида ()()
Не до сиськи.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2012, 23:44
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Nekromancer
Не до сиськи.
неее... это не сиськи, сиськи вот (.)(.)
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2012, 00:49
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

iMaxmaxmaximus,
ДжаваСкриптом поломал твой мозг форум.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Психологическая деформация программистов DreamTheater Оффтопик 59 24.03.2012 05:03
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
Подскажите что должен делать этот код... ms_train Общие вопросы Javascript 8 13.11.2010 16:25
Разбираем AjaxOOP eai Общие вопросы Javascript 41 04.11.2010 23:37
Некоторые клавиши возвращают одинаковый код: что делать? Cooskon Events/DOM/Window 2 20.10.2010 11:20