如何在 JavaScript 中预置/附加所有函数调用的结果



假设我有一个函数

function sum(...args) { return args.reduce((acc, v) => acc + v, 0) }

我像这样使用它 ->

console.log( “hi ” + sum(2,3) + “ hello” ),这将为我提供输出hi 5 hello

我想达到结果hi start 5 end hello

基本上,我想在函数调用的每个输出中附加和预置一些固定值,而不考虑函数本身。

我尝试覆盖属性的值,但它不起作用

注意:sum只是一个示例函数。是否有一些解决方案可以与所有功能一起使用?

您可以创建一个原型并使用它来调用您的函数,并在其中包含您想要的任何内容:

Function.prototype.debug = function(...args){
let res = this.apply(this, args);
console.log("Called function '" + this.name + "'. Result: start " + res + " end");
return res;
}
function sum(...args) {
return args.reduce((acc, v) => acc + v, 0)
}
console.log( "hi " +  sum.debug(2,3) + " hello");

如果您只需要它用于登录目的:

function sum(a, b) {
return a + b;
}
function divide(a, b) {
return a/b;
}
const oldLog = console.log;
console.log = function(msg) {
oldLog(`start ${msg} end`);
}
console.log(sum(1,2));
console.log(divide(1,2));

相关内容

  • 没有找到相关文章

最新更新