Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Что обозначает код вида ()() (https://javascript.ru/forum/misc/32811-chto-oboznachaet-kod-vida.html)

Shitbox2 30.10.2012 23:16

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

Получается что-то = ()(). Почему эта конструкция работает?

Nubi 30.10.2012 23:34

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

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

Nekromancer 30.10.2012 23:41

Цитата:

Что обозначает код вида ()()
Не до сиськи.

devote 30.10.2012 23:44

Цитата:

Сообщение от Nekromancer
Не до сиськи.

неее... это не сиськи, сиськи вот (.)(.)

Nekromancer 31.10.2012 00:49

iMaxmaxmaximus,
ДжаваСкриптом поломал твой мозг форум.


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