我试图理解为什么在使用回调函数和闭包时会得到不同的结果。
第一个场景:
var cb = function(){
console.log("anim done");
}
var anim = Raphael.animation({
transform: 't0, 100'
}, 2000, cb);
circle.animate(anim);
运行此程序时,有问题的圆圈会动画,2 秒后控制台中会显示“动画完成”消息。
第二种情况:
var cb = function(msg){
console.log("anim done");
}
var anim = Raphael.animation({
transform: 't0, 100'
}, 2000, cb("test"));
circle.animate(anim);
这会导致回调 (cb) 立即执行。这会导致立即显示“动画完成”消息。
有人可以澄清这里实际发生的事情吗?