【发布时间】:2014-07-25 19:31:51
【问题描述】:
在 Firefox 上运行的单元测试中,我遇到了一个奇怪的问题,即在窗口对象上删除 innerHeight 属性。
window.hasOwnProperty('innerHeight') 返回 false(仅在 firefox 中),这是根据 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN [docs] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty) 所预期的。但是,innerHeight 属性定义在什么对象上?
窗口上的属性失败(因为没有原型)?
window.prototype.hasOwnProperty('innerHeight');
我想知道的主要原因是在使用 sinon 的测试期间将属性存根,该属性在 chrome 中工作但在 firefox 中失败,因为 firefox 报告此属性不属于窗口对象。那么它属于什么对象呢?
【问题讨论】:
-
'innerHeight' in window在 IE8 及以下版本中返回 true,并且是检查该属性的正确方法。 -
我想是
Window.prototype -
@bfavaretto 是的,就是这样,谢谢 - 把它作为答案,我会接受
标签: javascript firefox sinon