我最近开始使用更实用的方法来编写javascript。我目前正试图弄清楚在转换数组时如何以良好的方式完成调试。更确切地说,我们如何使用断点的帮助?这是示例A :
myArray
.filter(fooFilter)
.sort(fooSort)
.map(fooMap)
.reduce(fooReduce)
如何实际为此添加断点?如果代码看起来像这样(更强制性的方式)示例B :
const filteredArray = myArray.filter(fooFilter);
const sortedArray = filteredArray.sort(fooSort);
const mappedArray = sortedArray.map(fooMap);
const reducedArray = mappedArray.reduce(fooReduce);
在上面的示例中添加断点不会有问题。
所以我试图询问是否有可能以某种方式修改示例A 以某种方式支持更容易的断点?另外,在根据功能范例进行编写时,如何考虑调试?
修改1:
我试图通过网络浏览器(例如chrome)设置断点。因此,通过更改代码添加它不是我在这里寻找的解决方案。
我也试图在每次转换后添加一个断点,看看转换的结果是什么。
编辑2:
我测试了chrome调试器和vscodes自己的调试器。它们实际上允许您在转换函数中放置断点。它们不允许您在每个转换函数之后设置断点(我认为这是最有用的情况)。
答案 0 :(得分:0)
您可以尝试使用自定义函数扩展Array原型:
func windowShouldClose(_ sender: NSWindow) -> Bool
然后您可以在需要时链接 .myDebugFn():
Array.prototype.myDebugFn = function(){
debugger;
return this;
}
ps:一般来说,修改/扩展内置对象原型是一个坏主意