枚举窗口对象时不存在转义函数

When enumerating over window object escape function is not present

本文关键字:转义 函数 不存在 窗口 对象 枚举      更新时间:2023-09-26

这个问题是基于用户@dandavis在这个问题中的观察 Javascript: 枚举全局变量.

循环访问window对象时,永远不会输出escape

for (var key in window){
  console.log(key);
  if(key === "escape"){
    console.log("This never happens!");
  }
}

但是,如果我明确地在控制台中写道:

window["escape"]

该函数按预期输出到屏幕。

谁能解释这种异常?

另外,我一直在Windows 7上的Chrome 30.0.1599.69中进行测试。

至少在 Firefox 中,window 的 "escape" 属性是不可枚举的。

console.dir(Object.getOwnPropertyDescriptor(window, "escape"));

显示浏览器调试控制台中的描述符。