这是我的代码段。如您所见,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的表达式值以及打算在此处编写的更多功能。

我该怎么做呢?
谢谢。

最佳答案

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

关于javascript - 如何在JavaScript中调试库函数的重写代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26189537/

10-09 13:05