这是我的代码段。如您所见,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/