Краткий ответ: Первая часть кода ничего не делает, поскольку embedGameSwfAfterReg не имеет оператора возврата. Вероятно, это может даже закончиться ошибкой, если API.registerOnload точно не проверяет свои аргументы перед выполнением.
Вторая часть кода создает анонимную функцию, которая передается как аргумент метода API.registerOnload, который (насколько я могу видеть из имени метода) запускает функции во время события Onload.
Длинный ответ: В первой части кода вы объявляете новую функцию под названием embedGameSwfAfterReg, которая противостоит в глобальной области видимости вашего кода:
function embedGameSwfAfterReg() {
// calls embedGameSwf function
}
после, вы выполняете определенную функцию и передать результат методу registerOnload прицельного с именем API:
API.registerOnload(embedGameSwfAfterReg());
Как вы, наверное, уже упоминалось, объявлена функция embedGameSwfAfterReg не возвращает заявление, поэтому результат ее е xecution будет неопределенным. Другими словами
API.registerOnload(embedGameSwfAfterReg());
делает то же самое, как
embedGameSwfAfterReg();
API.registerOnload();
так в конце концов, он вызывает API.registerOnload() без каких-либо аргументов, переданных!
Вторая часть кода создает анонимную функцию (Функции - это конкретные объекты в JS, которые могут быть переданы другим функциям/методам, имеют свои собственные методы и выполняются). Затем он передает созданную функцию (или, лучше сказать, ссылку на функцию) на registerOnload - метод объекта, называемого «API».
Вы должны читать темы об объектах, функциональных типах, областях, анонимных функциях и замыканиях в JS. Я бы посоветовал Mozilla JavaScript guide
Также чувствует себя свободно играть с a simplified example at jsfiddle, который дает практический намек на анонимные функции в JS.
Что вы думаете '()' означает? – SLaks