我需要导出一个递归函数。是否可以从函数中引用exports
对象? (我很担心循环参考)。
exports.traverse = function(node, cb){
if(node.hasOwnProperty("value")){
cb(node.value);
}else if(node.hasOwnProperty("children")){
node.children.forEach(function(child){
exports.traverse(child, cb); // Err, is this ok ?
});
}
}
答案 0 :(得分:6)
它 确定,它有效,但有一个更清洁的解决方案:
exports.traverse = function traverse(node, cb){
if(node.hasOwnProperty("value")){
cb(node.value);
}else if(node.hasOwnProperty("children")){
node.children.forEach(function(child){
traverse(child, cb);
});
}
}