コールバック関数とクロージャを使用しているときに、なぜ異なる結果が得られるのかを理解しようとしています。
最初のシナリオ:
var cb = function(){
console.log("anim done");
}
var anim = Raphael.animation({
transform: 't0, 100'
}, 2000, cb);
circle.animate(anim);
これを実行すると、問題の円がアニメーション化され、2秒後に「animdone」メッセージがコンソールに表示されます。
2番目のシナリオ:
var cb = function(msg){
console.log("anim done");
}
var anim = Raphael.animation({
transform: 't0, 100'
}, 2000, cb("test"));
circle.animate(anim);
これにより、コールバック(cb)がすぐに実行されます。これにより、「animdone」メッセージがすぐに表示されます。
誰かがここで実際に何が起こっているのかを明確にすることができますか?