javascript匿名関数の応用例紹介

1521 ワード

javascriptの匿名関数というのは、関数に名前がないということです。テストコード
 
/*
*
*/
function debug(data) {
console.log(data);
}
の中にある関数を先に並べてみます。それはこのように書かれています。
 
(function(x, y) {
debug(x + y);
})
上にある匿名関数です。
 
var fun = null;
(function() {
var test = function(x ,y ) {
debug(x +y);
}
fun =test;
})();
この時に、ブラウザのコンソールにfunを入力したら、function(x,y){debug(x+y)}が印刷されます。これは明らかに関数です。もしFun(1,2)を入力したら。この時にプリントアウトします。種類を見てみます。
 
var U = {
uid: 32812,
gameList: (function(){
var list = new Array();
list[7]= '360';
list[6]='baidu';
if(list != 'null'){
return list;
}
}
)(),
serverList: (function(){
var list = new Array();
list[1188]='360';
list[1165]='baidu';
if(list != 'null'){
return list;
}
}
)(),
channelList: (function(){
var list = new Array();
list[9]=' ';
return list;
}
)(),
searchName : function(t,id){
if( id == false || /^\d+$/.test(id) == false ){
return ' ';
}else if(eval(t).hasOwnProperty(id)){
return eval(t)[id];
}else{
return 'test';
}
}
};
この時、コンソールにUを入力します。これは行列です。U['search Name']は関数であり、U['qudao List'は結果として返されます。