Такого рода вещи могут быть выполнены только в ECMAscript 5, который поддерживается не во всех браузерах (например, IE). Используя Object.defineProperty
, вы можете создавать свойства с помощью функций доступа - чтобы вы могли реализовать свойство, такое как length
, в массивах, которые различаются в зависимости от состояния объекта.
Есть хорошая презентация Дуга Крокфорда об этих функциях и со ссылками на более подробные описания здесь .