【发布时间】:2020-06-26 08:45:43
【问题描述】:
我想做一个树形图的方法,但是我做不到。我无法理解回调函数。我不知道你为什么在那里使用回调函数。
Tree.prototype.map = function(callback) {
const newTree = new Tree(callback(this.value));
function childCheck(child, newTree){
for(let i=0; i<child.length; i++){
newTree.addChild(callback(child[i].value))
if(child[i].children){
childCheck(child[i].children, newTree.children[i])
}
}
}
childCheck(this.children, newTree)
return newTree
};
我无法理解“回调(this.value)”和“回调(child[i].value)”。为什么参数使用回调?起初,我只是使用了 'this.value',但没有很好地实现。 我知道回调函数是异步的,它是在 Array.prototype.map(callback) 中实现的。
【问题讨论】:
-
这里的回调看起来像是被调用者用来创建一个newTree节点,如果这个函数做到了,那么它只能创建一种类型的treeNode..
-
"我知道回调函数是异步的" - 不,它是一个同步回调。你没有一个如何调用这个方法的例子吗?
标签: javascript dictionary data-structures callback tree