我正试图从缩小的站点脚本中读取一个变量,该脚本由庞大的匿名函数组成,用于反向工程。据我了解,通常无法访问此闭包内部的变量。
(function() {
var af = function (a) { ... }
var ge = function() {
var obj = {};
obj.foo = 'bar';
af(obj);
}
})();
但是,我可以通过在该范围内的一行上放置一个断点来做到这一点。 有没有一种方法可以在开发人员控制台中从Javascript复制此代码,或者以其他方式无需修改脚本?
我尝试钩住Function.prototype.apply
,但遇到无限递归路径。
该脚本重新定义了console
之类的全局变量,这使它相当烦人。
答案 0 :(得分:0)
wOxxOm提供了一种实现此目的的方法。
Object.defineProperty(Object.prototype, "foo", {
set: function(val) {
console.log("Intercepted:", val);
this._foo = val;
},
get: function() {
return this._foo;
}
});