Javascript IE中有多少window.event对象? document.attachEvent(“onclick”,function()){ 事件a=100; window.m=事件; 警报(事件a); }); document.getElementById(“a”).attachEvent(“onclick”,function()){ 警报(事件===window.m); })

Javascript IE中有多少window.event对象? document.attachEvent(“onclick”,function()){ 事件a=100; window.m=事件; 警报(事件a); }); document.getElementById(“a”).attachEvent(“onclick”,function()){ 警报(事件===window.m); }),javascript,internet-explorer,Javascript,Internet Explorer,在早期版本的IE中,当我单击文档时,我得到了未定义,然后当我单击#a链接时,我得到了false 我的问题是,;IE的全局中有多少个事件对象? IE事件对象是可变对象吗?在旧版本的IE中,窗口。事件公开有关正在处理的当前事件的信息。JavaScript是单线程的——过去一直是,将来也可能是(请参阅Workers,了解引入多线程行为的示例)——因此,即使同时触发事件(在提交按钮上单击),它们也会按顺序解决(首先单击,然后单击提交,因为这是单击该按钮的默认操作) 因此,window.event将始终提

在早期版本的IE中,当我单击文档时,我得到了未定义,然后当我单击
#a
链接时,我得到了false

我的问题是,;IE的全局中有多少个事件对象?

IE事件对象是可变对象吗?

在旧版本的IE中,
窗口。事件
公开有关正在处理的当前事件的信息。JavaScript是单线程的——过去一直是,将来也可能是(请参阅Workers,了解引入多线程行为的示例)——因此,即使同时触发事件(在
提交
按钮上单击
),它们也会按顺序解决(
首先单击
,然后单击
提交
,因为这是单击该按钮的默认操作)

因此,
window.event
将始终提供有关当前事件的信息,该事件的处理程序是您所在的

据我所知,它不是一个可以附加东西的“普通”对象。这成为拖放事件的一个问题,在拖放事件中,您需要能够将数据附加到事件,以便它处理相关的未来事件。这就是为什么我们有事件系统


所以只有一个
窗口。event
,但它更像是事件数据的接口,而不是您可以使用的实际对象。从这个意义上说,它类似于
窗口。我想是外部的。

您完全不清楚您在问什么。什么是
event
?它是未定义的。您的意思是什么“全局中有多少个事件对象”?这不是一个格式良好的英语句子。你说的“可变”是什么意思?所有对象在JS中都是可变的。对不起,我指的是事件的值。a未定义,我指的是窗口。事件是不可变的,可能是我在(我发现我们可以用()
<a href="#" id="a">a</a>
<script>
    document.attachEvent("onclick", function(){
        event.a = 100;
        window.m = event;
        alert(event.a);
    });
    document.getElementById("a").attachEvent("onclick", function(){
        alert(event === window.m);
    })
</script>