我试图重写clearTimeout功能,在除了IE以外的浏览器上运行完全正常(在IE8测试)为什么在IE8上b/w window.clearTimeout和clearTimeout有什么不同?
clearTimeout = function(){};
IE8提供了以下错误:
Object doesn't support this action
但是,当我这样做,
window.clearTimeout = function(){};
它可以很好的覆盖clearTimeout。这是为什么?
此外,无处不在我的代码我打电话clearTimeout而不是直接为window.clearTimeout。所以,即使我重写clearTimeout(通过第二种方式),本机clearTimeout被调用,而不是重写的clearTimeout。什么可以解决这个问题?
为什么你重写默认行为? –
我正在写QUnit测试用例,其中我试图跟踪clearTimeout是否被调用,或者没有使用特定参数。 – hariom
窗口对象是一个主机对象,clearTimeout是一个主机方法。他们不必遵守ECMA-262,并且可以做他们喜欢(几乎)的事情。 – RobG