由于浏览器兼容性问题模糊,我希望能够拦截在窗口(pageYOffset)上“获取”属性的尝试。我已经确定我可以像这样纯粹覆盖这个属性:
Object.defineProperty(window, "pageYOffset", {
get: function () { return SOME_CONSTANT; }
});
但我希望能够读取pageYOffset的“base”值并在新计算中使用它。如果pageYOffset是一个函数,我可以像这样填充它:
var base = window.pageYOffset;
window.pageYOffset = function() {
var tempValue = base();
return tempValue * SOME_CONSTANT;
}
是否有相同的方法来获取对属性的getter函数的引用,所以我仍然可以在它不再可公开访问后调用它?
(我知道这是一个非常值得怀疑的事情,但我已经准备好面对后果。而且,我需要支持的唯一浏览器是IE11和Chrome。)