我试图从一个小型化的网站脚本中读取一个变量,这个脚本是由一个巨大的匿名函数组成的,用于反向工程。根据我的理解,通常情况下,不可能访问这个闭包中的变量。
(function() {
var af = function (a) { ... }
var ge = function() {
var obj = {};
obj.foo = 'bar';
af(obj);
}
})();
然而,我可以通过在该作用域内的一行上放置一个断点来做到这一点。有什么方法可以在开发者控制台中的Javascript中或以其他方式在不修改脚本的情况下重现这种情况吗?
我已经尝试过将 Function.prototype.apply
脚本重新定义了 globals,如 console
这使得这个问题相当烦人。
找到了一个实现这个问题的方法,由我提供的 wOxxOm.
Object.defineProperty(Object.prototype, "foo", {
set: function(val) {
console.log("Intercepted:", val);
this._foo = val;
},
get: function() {
return this._foo;
}
});