我的所有由jquery插件初始化的元素在运行时都共享相同的局部变量。我做了一个测试,发现是因为这一行:
var tmp1 = tmp2 = weird_local_var = 0;
如果我像下面这样写,就不会发生
var normal_local_var = 0;
这不是因为tmp1&tmp2,只是用于测试的虚拟变量。您可以通过http://jsfiddle.net/7SeRD/查看测试。发生什么事?
最佳答案
您可以将init行更改为:
var tmp1=0, tmp2=0, weird_local_var=0, normal_local_var=0;
// or
var tmp1=0;
var tmp2=0;
var weird_local_var=0;
var normal_local_var=0;
编辑:也看到此答案:link。
从中:
var a = b = [] is equivalent to
var a;
b = [];
a = b;
您正在做的是链接分配。
您实际上是将对weird_local_var的引用(其值为0)分配给tmp2,然后将对该引用的引用(即tmp1-> tmp2)分配给tmp1。
关于jquery - 奇怪的错误或jQuery插件中的东西,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12201839/