1

这个问题基于用户@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 中进行测试。

4

1 回答 1

2

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

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

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

于 2013-10-10T21:48:30.620 回答