型検査6
var rec = function _f(tgt,list,func){ array = list[tgt]; if(array instanceof Array){ for(var i=0; i<array.length; i++){ if(tgt == array[i]){ return;//登録済は無視する。 } } } array[array.length] = tgt;//末尾に登録 // func(tgt);//何か操作する。 // array[array.length] = tgt; list[tgt] = array; for(var id in tgt){ _f(tgt[id],list,func); } }
再帰的に走査するコードはこれでよいはずだが、globalに対して実行するとエラーが出る。何故だろう。
追記:__proto__やfunction.prototypeも再帰に加えた方が良いかな。