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

时间:2013-10-10 21:43:52

标签: javascript

此问题基于用户@dandavis在此问题Javascript: enumerate global vars中的观察结果。

当迭代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。

1 个答案:

答案 0 :(得分:2)

至少在Firefox中,window的“转义”属性不可枚举。

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

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