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中单例模式的实现,下一篇会写到如何实现单例模式。。^_^