Javascript 无效的调用对象IE

Javascript 无效的调用对象IE,javascript,internet-explorer,Javascript,Internet Explorer,在FF和Chrome中,我可以使用bind将此值设置为location对象,代码如下 locationFacade ={ reload: location.reload.bind(location) } locationFacade.reload(); 或者我可以用apply locationFacade ={ reload: function(){ location.reload.apply(location,arguments); } } location

在FF和Chrome中,我可以使用bind将此值设置为location对象,代码如下

locationFacade ={
reload: location.reload.bind(location)
} 
locationFacade.reload();
或者我可以用apply

locationFacade ={   
    reload: function(){
        location.reload.apply(location,arguments);  }
}
locationFacade.reload();

然而,在IE9中,调用locationFacade.reload()时,我不断得到“无效调用对象”;我并没有测试每一个IE,但问题也发生在IE 11中。IE和

都支持应用和绑定。这个问题似乎是IE的一个缺陷。我在IE11中测试了很多函数(document.writeln、window.alert等),除了
位置
的成员之外,所有函数都可以绑定。此解决方法可能有助于:

locationFacade = {
    reload: window.navigate ?
            window.navigate.bind(window, location.href) :
            location.reload.bind(location)
}

为什么不只使用location.reload()?我想传入locationFacade.reload收到的任何参数。例如,如果我想为location.replace.apply(location,arguments)创建一个类似的函数,我也会收到相同的错误。很好的解决方法,谢谢!除了你一定是指location.href之外,这里没有location.url,不客气。同样的技术适用于
assign
,但我找不到
replace
的替代品。console.log在IE 11(.0.9600.18314)上也有同样的问题