wal*_*rra 7 javascript underscore.js lodash
看看下面的代码结构:
myFunction(
_(myArray)
.filter({ keep: true })
.uniq('id')
.value()
);
Run Code Online (Sandbox Code Playgroud)
myFunction()以lodash为例进行一些数组转换的结果.虽然我喜欢代码的样式,但我发现很难调试并最终重构它以将lodash代码放在另一个函数中或首先将其分配给变量,然后将变量传递给myFunction().
您是否知道在不进行重构的情况下调试函数参数代码的有效方法?一些想法:
console.log正确的权利..filter()和之间设置断点.uniq()最好的方法是插入步骤:
.tap(console.log)
Run Code Online (Sandbox Code Playgroud)
其他方法:
创建混合功能
var debug = function (val) {
console.log(val);
return val;
}
_.mixin({'debug': debug})
Run Code Online (Sandbox Code Playgroud)
并像这样使用
_(myArray)
.debug()
.filter({ keep: true })
.debug()
.uniq('id')
.debug()
.value()
Run Code Online (Sandbox Code Playgroud)
或者您可以在使用之前先覆盖lodash函数,例如
_.filter = _.wrap(_.filter, function(func, val) {
console.log(func(val));
return func(val);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |