我不知道为什么当 console.log 打印正确的结果时这个小东西会返回“未定义”。提前谢谢。
App.Presentation.prototype.getLeaf = function(leafSlug, tree) {
for (var key in tree.content) {
if (tree.content[key].type === 'leaf' && tree.content[key].slug === leafSlug) {
console.log(tree.content[key]) // this works Correct
return tree.content[key]; // this returns undefined :<
} else {
this.getLeaf(leafSlug, tree.content[key]);
}
}
};
我在控制台中这样调用它:
Presentation.getLeaf("chpl", Presentation.tree);
并得到这个结果:
(第一个结果来自console.log
)
Object {type: "leaf", alias: "Chpl bla bla bla", slug: "chpl", group: "", order: ""…}
alias: "Chpl bla bla bla"
group: ""
html: "<img src='bg.png' />"
order: ""
parent: "chpl"
slug: "chpl"
type: "leaf"
__proto__: Object
(下一个结果来自return
)
undefined
Presentation.tree
是一个包含解析为对象的 JSON 的变量。