行为
我有一个名为InfoPanel
的全局变量。如果我在InfoPanel
时尝试通过undefined
引用它,则会因未定义而引发未捕获的引用错误。但是,如果我通过window.InfoPanel
引用它,则会按预期返回undefined
。
问题
为什么InfoPanel !== undefined
抛出异常但window.InfoPanel !== undefined
按预期工作?
对于那些要求代码的人:https://jsfiddle.net/Angryr/w27ezsb3/
答案 0 :(得分:1)
那是因为当您尝试全局访问InfoPanel
时,它会尝试查找不存在的变量。所以它会抛出异常。
执行window.InfoPanel
时,它正在尝试访问对象属性(InfoPanel
对象的window
属性)。
第二种形式不会引发异常。