Javascript 动态创建方法时的实例化
我有一些JSON数据,我正试图基于这些数据动态创建类和方法: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
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]中的最后一个值。对不起,我是手机:$