Некоторые поставщики браузеров внедрили методы получения / установки для свойств JavaScript.
FF и Webkit имеют __defineGetter__
и __defineSetter__
, реализованные для объектов DOM, и получают и устанавливают для объектов, что находится за пределами спецификации ECMA. Однако оба, а также IE 8+ имеют Object.defineProperty
(из спецификации ECMA). Читайте об этом здесь
Что касается вашего первоначального вопроса, я бы сказал, что причина, по которой он называется свойством в JavaScript, заключается в том, что это динамический язык, а базовая разметка использует только свойства и локальные переменные. Так как все связано с определенной иерархией области действия, все, что у вас есть, это разные ветви дерева на каждом уровне. И Дуглас Крукфорд назвал их свойствами :)