我有一个函数 - 让我们将其定义为将函数function getdata(after){}
作为after
参数。很自然。此函数正在从其他函数运行,该函数在其范围内定义了一些变量:
$('.button').click(function(){
var rel = $(this).attr('rel');
var mooo = $(this).parent().offset().left;
getdata(function(){alert(rel);console.log(moo)});
});
我如何以正确的方式传递这些变量,所以它真的和点击按钮时是一样的?它不能是全局变量,因为用户可以垃圾邮件单击按钮,并且它应该在单击期间保持变量原样,即使after
函数会在 10 分钟后以随机顺序调用,因为正如名称所说 - 它正在被调用在ajax请求之后。
这只是一个例子——这个想法是这个after
函数也是可变的,从完全不同的地方调用。
好的,知道了-1
,因为不清楚我要的是什么,所以我尝试解释这个问题。我真的不明白什么时候变量作为变量传递,什么时候作为变量的指针传递,变量的指针可能会在它被传递给的函数使用之前发生变化。
当我在一个函数中定义变量并将其传递给另一个函数时,它是指针还是独立变量?当我再次调用 origin 函数时,这些变量会改变 - 它会影响之前“shedled”的函数吗?或者变量之前的单词 var 意味着 - 将其定义为全新的变量,并且每次调用带有 var 的函数时,它都会在内存中分配这个变量作为全新的变量,不依赖于发生的任何事情?
我通常是一名 PHP、C 和 Delphi 程序员,我有点难以理解这些变量范围是如何工作的,尤其是当一切都是异步和回调的时候。