JavaScript var 在等待 jQuery 完成动画处理时被覆盖

javascript var being overwritten while waiting for jquery to finish animating

本文关键字:处理 覆盖 动画 var 在等待 jQuery JavaScript      更新时间:2023-09-26

我有以下代码:

myObject = function(id){
    var self = this;
    var id = id;
    self.printId = function(){
        console.log(id)
    }
}
var index = 1;
function createObj(){
    myobj = new myObject(index);
    index++;
    jquery.animate({...},5000,function(){
        myobj.printId();
    });
} 
createObj();
createObj();

输出为:

2
2

我期望:

1
2

显然,当调用第二个 createObj() 时,我原来的 myobj 被覆盖了。如何确保我的 myobj 在等待动画完成时不会被覆盖?

您需要

在声明新对象时放置 var 关键字。

这是一个范围问题。

function createObj(){
    var myobj = new myObject(index);
    index++;
   jquery.animate({...},5000,function(){
       myobj.printId();
   });
 }