在javascript DOJO中维护对象状态

时间:2013-09-23 08:30:39

标签: javascript html events javascript-events dojo

我有以下代码来调用页面中每个按钮的功能。

       dojo.query('.btn').forEach(function(item){
        Obj =   new MyClass(item); // class calls the ajax request on error of each btn click I have to handle some functionality in below function showError
        dojo.connect(Obj, 'showError', dojo.hitch(Obj, function(errors){
            console.log(Obj + 'came');
        }));

这里我尝试使用dojo.hitch来维护每个对象Obj的状态,但它不是维护。只有第一个Obj正在触发。对于第二个按钮,第一个Obj正在触发。这里有我遗漏的任何东西。< / p>

1 个答案:

答案 0 :(得分:0)

Obj被声明为全局变量。尝试在其前面加var。例如:

var Obj = new MyClass(item);

如果您不提供var,它将创建一个名为Obj的全局可访问变量。这意味着每次循环时,都会引用相同的全局变量。结果是每个都连接到相同的Obj(这就是为什么两个按钮都连接到同一个对象的原因)。

另外,请阅读StackOverflow上的this question以获取有关声明变量和全局范围的更详细视图。