我的所有由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/

10-09 08:30