Единственное различие, о котором я могу думать, это если вы назначили переменную функции внутри первого набора круглых скобок, вы получите разные результаты в зависимости от группировки.
var test;
(test = function(arg) {
console.log(arg)
})('I am the argument!')
Это работает, как ожидалось: Назначает «тест» функции, затем запускает его один раз с аргументом во втором наборе скобок. Это то же самое, что и установка теста, а затем запуск с test('I am the argument!')
Но как насчет другого пути?
var test;
(test = function(arg) {
console.log(arg)
}('I am the argument!'))
test
не определено! Зачем? Поскольку, когда вы помещаете круглые скобки рядом с функцией, она вызывает функцию до, затем присваивает ее переменной. Если вы завершите присвоение в круглых скобках , тогда запустите его (пример 1), тогда вы хорошо пойдете.
Как вы пришли к мысли, что есть разница? –
См. Также: http://stackoverflow.com/questions/3384504/location-of-parenthesis-for-auto-executing-anonymous-javascript-functions, http://stackoverflow.com/questions/3783007/is-there- a-difference-between-function-and-function и т. д. – nnnnnn