这个是很久以前写的,也不知道是在书上找到的还是那里来的。
闭包函数自执行的格式 (function(){})();
(1). 首先, 要清楚两者的区别:
(function {// code})是表达式,
function {// code}是函数声明.
(2). 其次, js"预编译"的特点:
js在"预编译"阶段,
会解释函数声明,
但却会忽略表式.
(3). 当js执行到function()
{//code}();时,
由于function()
{//code}在"预编译"阶段已经被解释过,
js会跳过function(){//code},
试图去执行();,
故会报错;
当js执行到(function
{// code})();时,
由于(function
{// code})是表达式,
js会去对它求解得到返回值,
由于返回值是一 个函数, 故而遇到();时, 便会被执行.
时间: 2024-10-14 18:52:12