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

How to debug overridden code of a library function in javascript?

本文关键字:库函数 重写 代码 调试 javascript      更新时间:2023-09-26

这是我的代码片段。正如您所看到的,drawNodes函数是从dagre-d3.js库中重写的,用于绘制有向图。但是,当我在以"renderer.drawNodes"answers"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()。确保您的代码被分解为足够多的独立行,以便您可以将断点准确地设置在所需的位置。然后在所需行上设置一个断点,并让调试器运行,直到它达到该断点(不是步进,而是运行)。