问题1:如果存在多个自调用函数要用分号分割,否则语法错误

// 下面代码会报错

  1. (function () {
  2. }())
  3. (function () {
  4. }())


问题2:当自调用函数 前面有匿名函数时,会把自调用函数作为参数(其实会匿名函数和自调用函数中的空格去掉)

  1. var a = function () {
  2. alert('11');
  3. }
  4. (function () {
  5. alert('22');
  6. }())

test.gif

// 代码规范中会建议在自调用函数之前加上分号
;(function () {
}())
;(function () {
}())