您的位置:首页 > Web前端 > JavaScript

Javascript的匿名函数与自执行

2015-06-02 11:09 686 查看
1:匿名函数的创建:

形如这样的方式创建:

(function(x,y){})(2,3);

这里创建了一个匿名函数(在第一个括号内),第二个括号内用于调用该匿函数的调用,并传入相应的参数.

2:自执行的匿名函数

1.1:什么是自执行的匿名函数?

它是只形如正阳的函数:(function{code})();

1.2:疑问 为什么(function { code })();可以执行,而function {//code}();却不会执行呢?

1.3:分析

(1)首先,要清楚两者的区别;

(function{code}) 是表达式,function {code } 是函数的声明;

(2)其次,js '预编译'的特点;

js在预编译阶段,会解释函数声明,但是却会忽略表达式.

(3)当 js 执行function (){} 时 由于function(){}在预编译阶段已经被解释过,所以js会跳过function(){},试图去执行();故会报错;当js执行到(function{})()时,由于(funciton{})是表达式,js回去对它求解得到返回值,由于返回值是一个函数,故而遇到();时,遍会被执行.

另外,函数转换为表达式的方法并不一定要靠分组操作符(),我们还可以使用void !等操作符.........

例如:!function(){

alert("另外的匿名函数的自执行");

}();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: