动态创建方法时的实例化

时间:2013-12-16 22:52:02

标签: javascript

我有一些JSON数据,我正在尝试根据这些数据动态创建类和方法:

var classes = JSON.parse(data);
var classesObj = {};

for(var c in classes){

  var methods = classes[c].methods;
  var methodsObj = {};

  for(var m in methods){

    methodsObj[m] = function(args){

      return methods[m].property;
    }

  }
 classesObj[c] = methodsObj; 
}

return classesObj;

但我的问题是,如果我打电话给

firstClass.firstMethod()

返回的属性实际上来自lastClass.lastMethod()我很确定这是一个实例化问题,但我似乎无法弄清楚从哪里开始。

1 个答案:

答案 0 :(得分:2)

问题是匿名变量(c和m)绑定到匿名函数之外的同一个变量。请参阅Javascript closure inside loops - simple practical example