Javascript 为什么会有';事件';当上游发生事件时,变量是否可用而未定义?

Javascript 为什么会有';事件';当上游发生事件时,变量是否可用而未定义?,javascript,jquery,google-chrome,knockout.js,Javascript,Jquery,Google Chrome,Knockout.js,我今天偶然发现一个奇怪的行为。基本上,我有一个绑定到knockout.js click事件的函数。函数正在使用敲除事件,但没有显式地将其作为参数 this.myClickHandler = function(){ console.log(event); //event gets logged in Chrome/IE11, not Firefox } 这在我看来很奇怪,但在Chrome中,它工作正常。它在IE11中也正常工作。然而,在Firefox中,它不起作用。一旦我明确表示它在所有

我今天偶然发现一个奇怪的行为。基本上,我有一个绑定到knockout.js click事件的函数。函数正在使用敲除事件,但没有显式地将其作为参数

this.myClickHandler = function(){
    console.log(event); //event gets logged in Chrome/IE11, not Firefox
}
这在我看来很奇怪,但在Chrome中,它工作正常。它在IE11中也正常工作。然而,在Firefox中,它不起作用。一旦我明确表示它在所有浏览器中都能工作。这正是我所期望的,它完全需要的

this.myClickHandler = function(model, event){ //event is second parameter passed from knockout click event
    console.log(event); //event gets logged in all browsers
}
我玩了一个游戏,还用jQuery复制了这个

函数func(){
警报(事件);
}
函数runFunc(回调){
回调();
}
$(文档).ready(函数(){
runFunc(func);
});

它是从旧版本的IE中继承过来的,在旧版本IE中,事件对象没有传递给处理程序方法,而是在全局上下文中设置的

为了向后兼容,IE仍然支持该型号,chrome也增加了对该功能的支持。但FF并不支持它


它是从旧版本的IE中继承过来的,在旧版本IE中,事件对象没有传递给处理程序方法,而是在全局上下文中设置的。。。。对于向后兼容性,IE仍然支持。。。chrome还增加了对该功能的支持。。但FF并不支持it@ArunPJohny你能回答这个问题吗?如果你能找到的话,最好有一个参考资料。因为我找不到参考链接,所以我没有把它作为答案发布