对不起,我不知道如何解释。如何在不使用eval的情况下完成此操作
该函数接受一个URI,例如:/ foo/bar/1293。如果存在,该对象将存储在一个类似{foo:{bar:{1293:'content ...'}}}的对象中。该函数遍历URI中的目录并检查该路径是否未定义,并同时用随后使用eval()调用的代码构建一个字符串。包含代码的字符串看起来像删除内存[“foo”] [“bar”] [“1293”]
是否有任何其他方式可以实现此目的?也许将保存的内容存储在 以外的其他东西中?
remove : function(uri) {
if(uri == '/') {
this.flush();
return true;
}
else {
var parts = trimSlashes(uri).split('/'),
memRef = memory,
found = true,
evalCode = 'delete memory';
parts.forEach(function(dir, i) {
if(memRef[dir] !== undefined) {
memRef = memRef[dir];
evalCode += '["'+dir+'"]';
}
else {
found = false;
return false;
}
if(i == (parts.length - 1)) {
try {
eval(evalCode);
} catch(e) {
console.log(e);
found = false;
}
}
});
return found;
}
}
当然,不知道我在想什么......谢谢:) – xCander