当我在家里玩一些Javascriptz时,我遇到了一些事情......
我做了一个简单的函数,它从字符串中返回每个字符或从数组中返回每个位置值:
function each (haystack, callback) {
var each;
for (each in haystack){
if (callback && typeof callback == "function") {
callback (haystack[each]);
}
}
}
如何使用:
each ("StackOverflow", function (c) {
console.log(c);
});
我想知道是否有办法将 /\ 变成这样:
each ("StackOverflow", c) {
console.log(c);
}
或者至少是这样的,任何你不需要function
为回调重写单词的东西。
我试过这个,但没有成功:
each ("StackOverflow",
"console.log(c)" // turn the callback function into a string
// but where was `c` defined here? do.not.ask.me.
);
并且each()
是:
function each (haystack, callback) {
var each;
for (each in haystack){
// call it in a setTimeout() crazy? yeah, didn't work...
setTimeout(callback, 0);
//and also tried this, no success...
var b = new Function ("haystack[each]", cb);
b ();
}
}
我的结论是,不幸的是,如果不声明匿名函数,我们就不能拥有回调函数。
有没有办法在不使用工作的情况下制作回调函数 function
?