某网站有一个js方法,如何对该方法做加工,获取其打印出其参数和返回值?

比如一个方法
···
window.logHello()
···
如何对这个方法做类似代码注入的方式,打印出这个函数的入参和返回值?

阅读 769
1 个回答

下面这是一个常用的方法,但是使用的时候还是会有坑,比如示例中的 hi 提前引用了原来的 sayHello,改不了。

globalThis.sayHello = name => console.log(name);

const hi = globalThis.sayHello;
globalThis.sayHello("James");
hi("Andy");
console.log("--------------------------------------");

globalThis.sayHello = (fn => {
    return (...args) => {
        console.log("arguments: ", args);
        const result = fn(...args);
        console.log("result: ", result);
        return result;
    };
})(globalThis.sayHello.bind(globalThis));

globalThis.sayHello("James");
hi("Andy");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题