【发布时间】:2018-03-09 10:34:51
【问题描述】:
我是 JavaScript 新手。
class ExpansionPath {
expandPipelineNodes()
{
this.expandPipelineNode(this._rootNodes);
}
expandPipelineNode(node)
{
let bPipeline = false
_.each(node.children,function(child){
bPipeline |= this.expandPipelineNode(child);
})
...
}
}
当我调用函数 expandPipelineNodes 时,它调用了 expandPipelineNode(node),这很好。但是当它进入 foreach 循环时,程序就会崩溃。我已经调试了程序,它表明这在 forEach 循环中变得未定义。我还尝试了以下代码:
node.children.forEach(function(child){
bPipeline |= this.expandPipelineNode(child);
})
但问题仍然存在。 如何在 javascript 中解决这个问题?
【问题讨论】:
-
你在循环中失去了
this的范围,你必须绑定它 -
那怎么绑定呢?