Сообщение от Дзен-трансгуманист
|
Ну это вряд ли...
alert(window instanceof Node); // false
Так-то корнем является document, так что разве что через него, и потом, опционально, через with. Но это не наилучшая идея, имхо.
|
Да нет, в IE 8 в window тоже можно добавлять аксесорные свойства.
Оказывается, дело было в enumerable: true, если это убрать, то в IE 8 работает (в этом нет ошибки согласно спецификации, просто Object.defineProperty в IE 8 реализован нестандартным способом).
Этот пример работает также в IE 8.
var a={}, b;
a[b]=0;
Object.defineProperty(window, "c", {
get: function () {
return a[b];
},
set: function (v) {
a[b]=v;
}
});
c++;
alert(a[b]);