JavaScript当中的自身重写函数(Self-overwriting fuctions)

最近学习JavaScript看到了JavaScript的自身重写的用法,有必要记录一下,代码如下:

 1 function fun(){
 2     var name = 'hello';
 3     //重写了自己
 4     fun = function(){
 5         name = 'world';
 6         return name;
 7     };
 8     return name;
 9 }
10 alert(fun());//"hello"
11 alert(fun());//"world"
12 alert(fun());//"world"
13 

在上面的代码中,在fun函数的内部又重新定义了fun,这样就实现了函数的自身重写,会在第一次调用的时候进行重写,所以第一次弹出"hello",以后每次都会弹出"world"。

那么这种函数会用在什么地方呢?一种用处就是JavaScript中单例模式的实现,下一篇会写到如何实现单例模式。。^_^

posted @ 2012-09-16 09:55  yuezk  阅读(413)  评论(0编辑  收藏  举报