在窗口上填充现有属性

时间:2013-12-19 21:46:15

标签: javascript

由于浏览器兼容性问题模糊,我希望能够拦截在窗口(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。)

0 个答案:

没有答案