私のプログラミング "スキル"の基礎は揺れています。この動作が再帰、閉鎖などによって引き起こされるかどうかはわかりませんが、これははるかに奇妙です私は今まで見たことがあります。閉鎖を伴う再帰関数の復帰動作
元の意図は、再帰を使用してdom要素の親を数えたことです。クロージャは、私のカウンタを格納するために実装されており、再帰はdiv#ラッパーと等しくないすべての親に対してそれを増やします。それは一度動作します。最初の要素(親が1つしかない - それは1を返します)しかし、2回目はそれがundefinedを返します。テストのために私は、このリグを思い付いた:私は実際に私の目を問うています
let parents = countParents();
let pathLength = parents(3);
function countParents() {
let counter = 0;
return function nextParent(node) {
let parent = node - 1;
counter++;
if (parent === 1)
return 'WATAFAK';
else
nextParent(parent);
}
}
console.log(pathLength);
(それが遅く、今しばらくの間、プログラミングされています)が、この機能はundefinedを返します。そんなことがあるものか?
'else'ブランチにreturn文がありません。 – user2357112
また、あなたが働いている言語で質問にタグを付けてください。 – user2357112