タイトルは申し訳ありませんが、それを説明する方法がわかりません。
この関数は URI を取ります (例: /foo/bar/1293)。オブジェクトが存在する場合は、{foo: { bar: { 1293: 'content...' }}} のようなオブジェクトに格納されます。この関数は、URI のディレクトリを反復処理し、パスが未定義でないことを確認し、その間に、後で eval() を使用して呼び出されるコードで文字列を作成します。コードを含む文字列は、delete memory["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;
}
}