私は、フォルダツリーを検索し、選択したフォルダの親フォルダを見つける関数を持っています。javascript/Polymerで再帰関数を呼び出せません
ここに関数があります。
getParentFolder: function (searchroot, childFolder) {
searchroot.subfolders.forEach(function (folder) {
if (folder.key == childFolder.key) {
return searchroot;
}
else {
if (folder.subfolders) {
return this.getParentFolder(folder, childFolder);
}
}
});
}
私はそれは単に私だけを与えるthis.getParentFolder(rootFolder, childFolder);
でこれを呼び出す:キャッチされない例外TypeError:this.getParentFolderはなぜこれを機能 ではないでしょうか?私は他の関数を呼び出すと同じファイルで、彼らは完全に正常に動作します。これは私が呼び出すことができない唯一の機能です。再帰のためですか?
これは、JavaScriptの性質上、私はこれを何回かのループで呼び出すたびに、毎回これを自己に再割り当てする必要がありますか? – nanobots
あなたはあなたの主なオブジェクトを追跡したい場合は絶対に。あるいは、['bind'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) –
@nanobotsを使用すると、外側の' this 'forEach'の引数として' self'を使う必要がありません。 –