The things accessible on window
не обязательно «собственные» свойства window
и (это значительный бит) не являются необходимыми перечислимы. for-in
только посещает перечислимые свойства (как «собственные», так и унаследованные).
В Chrome, например, автоматическое a
глобальное является свойством прототипа прототипа window
, и он помечается как не перечислимы:
var o = window;
var where = "window"
while (o && !Object.getOwnPropertyDescriptor(o, "a")) {
where = "prototype of " + where;
o = Object.getPrototypeOf(o);
}
console.log(where);
console.log(Object.getOwnPropertyDescriptor(o, "a"));
<div id="a"></div>
Похоже, это в том же месте на Firefox.
Точная семантика того, как именованный доступ достигнут, не продиктована, пока работает in
и работает window.a
.
Что именно вы пытаетесь достичь? – charlietfl
точно я хочу получить и нажать его в arr –
Какую проблему с более высоким уровнем вы пытаетесь решить? – charlietfl