window.
当我们想明确表达它时,我们就会写作。基本上有两种情况可以使用它:
- 对象的属性和方法——作为接口
window
一部分的一切。您提到的监听器就是一个例子,诸如, , , , ,之类的东西是其他的。Window
.onload
window.scrollY
window.status
window.parent
window.open()
window.focus()
window.removeEventListener()
- 创建全局属性。从任何范围赋值
window.myGlobalVar
是创建全局“变量”的常见 JS 习惯用法。诚然,用 . 显式声明它仍然是更好的做法var
。
虽然我们可以“选择性地”省略window.
这里的部分,但这并不常见。特别是通过赋值创建隐式全局变量是被鄙视的,通常被视为一个错误。因此,如果您是故意这样做的,您可以使用window.
.
但是,第一种情况并不总是明确定义的。window.
当我们想要使用的属性本质上是一个静态的全局变量时,我们经常会省略部分,window
即使它正式指定在对象上也不一定与对象相关。您很少看到有人使用, document
, atob()
, Worker
orsetTimeout()
前缀,就像您不使用or用于内置对象一样(尽管它是有效的)。fetch()
window.
window.JSON.parse
window.Array
对于其他一些属性,例如navigator
,location
或者alert()
它并不总是很清楚,并且可能使用了 550 没有或没有。