如何在javascript中调试库函数的重写代码?

时间:2014-10-04 04:15:02

标签: javascript debugging d3.js firebug google-chrome-devtools

这是我的代码段。如您所见,dagre-d3.js库中的drawNodes函数被覆盖以绘制有向图。但是,当我在以'renderer.drawNodes'开头的行和'step into'中分配断点时,控件进入库内。但是,如果我跳过,它会跳过此功能并在函数结束后转到下一行。

var oldDrawNodes = renderer.drawNodes();
renderer.drawNodes(function(graph, root) {
  var svgNodes = oldDrawNodes(graph, root);
  svgNodes.each(function(u) { d3.select(this).classed(graph.node(u).nodeclass, true); });
  return svgNodes;
});

我的目的是调试被覆盖的代码,我想看一下var svgNodes的表达式值以及我打算在那里写的更多功能。

我该怎么做? 感谢。

1 个答案:

答案 0 :(得分:1)

不要进入renderer.drawNodes()。确保您的代码分成足够的单独行,以便您可以将断点准确设置在所需的位置。然后在所需的行行上设置一个断点,让调试器运行,直到它到达该断点(不是步进,而是运行)。

相关问题