我在Firefox上运行的单元测试中,在窗口对象上删除innerHeight属性时遇到一个奇怪的问题。
window.hasOwnProperty('innerHeight')
会根据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)返回false
(仅在Firefox中)。但是,什么对象是在?
这在窗口上失败(因为没有原型)属性?
window.prototype.hasOwnProperty('innerHeight');
我想知道的主要原因是在使用sinon的测试期间将属性存在,但在firefox中失败,因为firefox报告此属性不属于window对象。那它属于什么对象?
答案 0 :(得分:1)
prototype
属性属于Window
构造函数。但我会按照adeneo的建议使用'innerHeight' in window
,因为这会检查window
对象及其原型链。