匿名函数问题

首先要知道什么是匿名函数,我们知道函数的声明方式有以下两种:

function fn() {} // 声明式

var fn = function(){} // 赋值表达式

然后调用这个函数的时候就在函数名后面加一对小括号:

fn ()
但是,当我们直接在声明的函数后面直接加()时,浏览器会报错:

function(){}() // 浏览器无法解析
但是如果将函数体用()包起来,是不会报错的,像下面这样:

(function(){})() // 这个也就是匿名函数
原因是,使用括号包裹函数体,浏览器会以函数表达式的方式调用定义函数,也就是任何能将函数变成一个函数表达式的方法,都可以被浏览器正确接续,有这个功能的符号比如:! + - || 等一元操作符

原文地址:https://www.cnblogs.com/luorunsb/p/15394912.html