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) ; 這時候就印出3了。下面來看看種類型。
複製代碼代碼如下:
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['searchName ']是一個函數, U['qudaoList']回傳的是一個結果。