首页 > 代码库 > javascript 函数初探 (五)--- 几种类型的函数

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 函数初探 (五)--- 几种类型的函数