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