此前在做node.js项目的时候,整天与匿名函数打交道,似乎习惯成自然,熟悉得很了。
这次天降大任,搞了许久前端,忽然有一次觉得应该写个匿名函数,竟然不知道该怎么写!
主要是搞不清楚匿名函数应该写在哪里。
函数有定义,有调用。而匿名函数是作为参数定义在一个函数里面的。
那么它是定义在函数定义里,还是定义在函数调用里?
定义在函数调用里。
我第一次是写在函数定义里,如
function A(id,function(){}){
}
结果语法就通不过。
后来想清楚了,匿名函数的意义在于,让你区分不同情况来做处理:
- function HelloWorld(getWho){
- alert(getWho() + ": Hello World!");
- }
- HelloWorld(function(){
- return "zhang3";
- });
- HelloWorld(function(){
- return "Li4";
- });
- //匿名函数,在调用的时候才定义。。。
.NET里也是一样。javascript里的匿名函数跟委托、lambda表达式有所关联:
- delegate string DlgGetOneShowItem(DataMgrService.ViewGroupItem vgi);
- DlgGetOneShowItem dlgGetOneCutomViewItem = (DataMgrService.ViewGroupItem vgi) =>
- {
- //……
- };
- DlgGetOneShowItem dlgGetOneOjbectItem = (DataMgrService.ViewGroupItem vgi) =>
- {
- //……
- };
将函数赋给委托,一步到位,省却了定义函数,然后再赋给委托的麻烦。
http://jsfiddle.net/ 是个好网站,在这里可以很方便地检测js、html、css。