此问题基于用户@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。
答案 0 :(得分:2)
至少在Firefox中,window
的“转义”属性不可枚举。
console.dir(Object.getOwnPropertyDescriptor(window, "escape"));
显示浏览器调试控制台中的描述符。