
在JavaScript中,JSON.parse(str, reviver) 其实遵循深度优先的后序遍历,这样每个节点只需要操作一次就可以了,否则枝干节点创建以后,在所有叶子结点计算完毕,有可能还要再操作一次(比如添加子节点到自己的children成员里)。
https://zh.wikipedia.org/wiki/%E6%A0%91%E7%9A%84%E9%81%8D%E5%8E%86
http://notes.eatonphil.com/writing-a-simple-json-parser.html