家で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
か?