闭包函数自执行的原理

Posted 金玲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭包函数自执行的原理相关的知识,希望对你有一定的参考价值。

这个是很久以前写的,也不知道是在书上找到的还是那里来的。

闭包函数自执行的格式 (function(){})();

(1). 首先, 要清楚两者的区别:
(function {// code})是表达式, function {// code}是函数声明.
(2). 其次, js"预编译"的特点:
js在"预编译"阶段, 会解释函数声明, 但却会忽略表式.
(3). 当js执行到function() {//code}();时, 由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错;
当js执行到(function {// code})();时, 由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.

以上是关于闭包函数自执行的原理的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 闭包 立即执行函数

深入理解javascript原型和闭包(12)——闭包

自执行函数 闭包

js 闭包原理

Swift之深入解析闭包Closures的使用和捕获变量的原理

自调用匿名函数(匿名闭包)解析与调用