从 devtools 控制台的匿名 Javascript 函数中读取变量

Read variable from anonymous Javascript function from devtools console

我正在尝试从一个缩小的站点脚本中读取一个变量,该脚本由一个用于逆向工程目的的巨大匿名函数组成。据我了解,通常不可能访问困在这个闭包中的变量。

(function() {
  var af = function (a) { ... }
  var ge = function() {
      var obj = {};
      obj.foo = 'bar';
      af(obj);
  }
})();

但是,我可以通过在该范围内的一行上放置一个断点来实现。 有没有办法在不修改脚本的情况下从 Javascript 在开发人员控制台或其他方式重现此内容?

我曾尝试将 Function.prototype.apply 但 运行 挂钩到无限递归路径中。 该脚本重新定义了像 console 这样的全局变量,这让这很烦人。

找到了实现此目的的方法,感谢 wOxxOm

Object.defineProperty(Object.prototype, "foo", {
    set: function(val) {
        console.log("Intercepted:", val);
        this._foo = val;
    },
    get: function() {
        return this._foo;
    }
});