是否可以從數組內部執行匿名函數(也是在數組內部定義的)?執行陣列中的函數
return [
//execute?
function() {
//logic
}
];
還是應該在外面定義它,然後才能調用它?
是否可以從數組內部執行匿名函數(也是在數組內部定義的)?執行陣列中的函數
return [
//execute?
function() {
//logic
}
];
還是應該在外面定義它,然後才能調用它?
從技術上講,你可以在括號括起來的功能,並調用它像這樣:
return [
(function() { return 42; })()
];
這是一樣的
return [
42
];
但是,你爲什麼會想這樣做?它只會使代碼不易讀。簡單地擁有一個單獨的變量來保存閉包並根據需要調用它會好得多。
您也可以做到這一點使用call_user_func
功能:
function test(){
return [
call_user_func(function(){
return "I was executed inside array! wow!";
})
];
}
print_r(test());
// the output:
Array
(
[0] => I was executed inside array! wow!
)
啊........爲什麼呢? –