使用代理查看对象调用
在排查 API 调用的场景下,开发者通过查看分析代码往往会很慢,我们需要一个更快捷的分析路径。这时候我们可以用 Proxy。
如:
const nowStr = () => {  const date = new Date();  const hour = date.getHours();  const minute = date.getMinutes();  const second = date.getSeconds();  const format = (n) => `${n < 10 ? '0' : ''}${n}`;  return [hour, minute, second].map(format).join(":");};
const handler = {  get(target, prop, receiver) {    // 此时可以查看调用时间和属性    console.log(`${nowStr()} ${prop}`);    // 也可以查看调用栈    console.trace();    return target[prop];  },};
const setProxy = (proxyKey) => {  window[proxyKey] = new Proxy(window[proxyKey], handler);};setProxy('Math')此时我们就可以快速查看对应属性是否使用了。
但是 Proxy 无法代理 window, 要使用 defineProperty 才行,这里可以查看下一篇 查找调试 JS 全局变量 。