javascript 函数初探 --- 几种类型的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 函数初探 --- 几种类型的函数相关的知识,希望对你有一定的参考价值。

  即时函数:

  目前我们已经讨论了匿名函数在回调时的应用。接下来,我们来看看匿名函数的另一种应用实例 --- javascript即时函数:

比如:

(
     function(){
          alert(her);
     }   
)()

虽然这种语法看上去有点吓人,但其实非常的简单 --- 我们只需将匿名函数的定义放进一对括号中,然后外面再紧跟一对括号即可。

其中第二对括号起到了 ‘立即调用’ 的作用,同时她也是我们向匿名函数传递参数的地方。

(
    function(a){
        alert( ‘her is‘ + a + ‘!‘ )
    }
)(‘beauty‘);

另外,您也可以将第一对括号闭合与第二对括号之后,这两种做法都有效:

// 第一种
(function(){
    alert();
})()

// 第二种
(function(){
   alert()
}())

 

使用即时函数(自调函数)的好处是不会产生任何全局变量。当然,缺点也是显而易见的,这种函数是无法重复执行的(除非您将她放入某个循环中,或其他函数中)。这个特性也使得即时函数非常适合于执行一些一次性的初始化任务。

如果有需要的话,即时函数也能带有返回值,虽然并不常见:

var her = (function(){
   return ‘She was really beautiful‘;
})();

 

当然在这个例子中,将整个函数表达式用括号包起来是不必要的,我们只需在函数最后使用一对括号来执行这个函数即可。因此也可以改为:

var her = function(){
    return ‘She was really beautiful‘;  
}();

但这种写法可读性差了些,不读到最后我们不会知道这是个即时函数还是其他的神马。

 

以上是关于javascript 函数初探 --- 几种类型的函数的主要内容,如果未能解决你的问题,请参考以下文章

javascript 函数初探 --- 回调函数

javascript 函数初探 --- 闭包初探#1

[JS基础][非原创]初探JavaScript

javascript 函数初探

javascript 函数初探

JavaScript初探系列之数组的基本操作