Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带窗口的窗口属性_Javascript - Fatal编程技术网

Javascript 不带窗口的窗口属性

Javascript 不带窗口的窗口属性,javascript,Javascript,最近,我注意到在函数中使用了“event”变量,其中参数和闭包都不包含该变量。 但它是有效的,事件是存在的。看起来“event”指的是window.event 因此,有两个问题: 为什么我可以像访问变量一样访问窗口属性而不引用窗口 如果我们使用的是通常的JavaScript(在我的例子中是TypeScript)代码,而不是处理程序或任何以事件为参数的东西,那么默认的“event”变量中有什么事件 关于事件与窗口事件的说明: 如果要直接在devTools控制台中键入“window.innerHei

最近,我注意到在函数中使用了“
event
”变量,其中参数和闭包都不包含该变量。 但它是有效的,事件是存在的。看起来“
event
”指的是window.event

因此,有两个问题:

  • 为什么我可以像访问变量一样访问窗口属性而不引用窗口
  • 如果我们使用的是通常的JavaScript(在我的例子中是TypeScript)代码,而不是处理程序或任何以事件为参数的东西,那么默认的“
    event
    ”变量中有什么事件
  • 关于事件与窗口事件的说明: 如果要直接在devTools控制台中键入“window.innerHeight”-我们将得到编号。同样的结果,我们只需输入“innerHeight”而不输入“window”

  • 为什么我可以像访问变量一样访问窗口属性而不引用窗口
  • “为什么?”如果不询问编写规范的人员,问题就无法真正回答。这就是
    窗口
    对象的工作方式,因为它表示全局范围。正如我在评论中提到的,您可以使用或不使用
    窗口访问任何全局属性。
    前缀。这是因为全局变量实际上是附加到全局对象的,在本例中,
    window
    ——任何东西都不能超出此全局范围。同样,在没有
    窗口
    对象的其他JS环境中,情况并非如此,例如,在节点中,全局对象被命名为
    global


  • 如果我们在通常的JavaScript(在我的例子中是TypeScript)代码中,而不是在处理程序或任何将事件作为参数的东西中,那么默认的“event”变量中有什么事件
  • 您可以自己记录并查看:

    console.log(window.event);
    按钮。addEventListener('click',函数(事件){
    console.log(window.event);
    });
    
    点击我请提供一些示例代码。我不是100%确定你在问什么“一个全局变量,
    window
    ,表示运行脚本的窗口,暴露于JavaScript代码中。”,2.:只读窗口属性事件返回当前由站点代码处理的事件。在事件处理程序的上下文之外,该值始终未定义。您应该避免在新代码中使用此属性,而应该使用传递到事件处理程序函数中的事件它可以解释为什么我在窗口上获取事件-此时可能有另一个处理程序正在执行并等待响应。关于窗口属性的问题仍然存在。我在问题的底部再次描述了。您可以用这种方式指定任何窗口属性或方法,因为
    window
    表示全局范围。正如您所提到的,您可以使用
    innerHeight
    执行此操作,但也可以作为
    窗口访问HTML标记ID。一个
    一个
    。请注意,这仅适用于web浏览器,而不适用于Node等其他JS环境。当您编写
    window
    时,您正在访问全局作用域的
    “window”
    属性。此属性本身是对全局范围的引用,这就是为什么
    事件
    窗口.事件
    窗口.窗口.事件
    窗口.窗口.事件
    等都引用同一事物的原因。这就是Javascript的设计方式。