浏览 3268 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2008-12-26
返回值为函数的函数(Functions that Return Functions)在前几篇文章已经介绍了函数要有返回值,即使没有写return,函数也会返回一个undefine。 接下来看看返回值为函数的情况 function a(){ alert('a'); return function(){ alert('b'); }; } 在这个例子中,a函数执行了alert('a'),以及它返回了另一个函数b。关于返回b的调用我们可以这样来用。 var newFunc = a(); newFunc(); 执行结果为 alert a和alert b 如果不想赋值调用这个函数也可以简写如下
a()(); 函数的自身重写因为函数可以返回一个函数,那就意味着可以用一个新的函数替代一个旧的函数,根据前一个例子来改进一下 a=a(); 第一次运行函数a,就alert a,再次运行函数a,就alert b,这个功能对初始化非常有用。这个函数a重写了自己,避免在以后调用初始化的功能(上个例子为alert a)。 当然我们还有更简单的方法来重写a函数那就是在a函数的内部重写它,来看看代码 function a(){ alert("a") a=function(){ alert("b"); } } 只有在初次调用a函数才会执行 alert a 在以后的调用中,都会执行alert b 下面结合前几节看个综合的例子
var c = function(){ function a(){ alert('a') } function b(){ alert('b') } a(); return b; }();//alert('a'); c();//alert('b'); 这个例子有以下几点需要注意 1. a函数,b函数是内部函数。 2. return b 返回的是个函数的引用。 3. 子调用函数重写了函数c。
如果能明白这个例子,关于内部函数,子调用函数和返回值为函数的函数就可以都理解了。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |