Javascript 动态创建方法时的实例化

Javascript 动态创建方法时的实例化,javascript,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 metho

我有一些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()
我很确定这是一个实例化问题,但我似乎不知道从这里开始该怎么做。

问题是匿名变量(c和m)绑定到匿名函数外部的同一个变量。请参阅。

你能在JSFIDLE中重现这个问题吗?你能发布一个我认为你能做到的“数据”的简单示例吗:var p=methods[m].property;然后返回p;因为否则它将(run-/executiontime)查找方法[m]中的最后一个值。对不起,我是手机:$