JavaScript: поля или свойства - PullRequest
       8

JavaScript: поля или свойства

7 голосов
/ 02 февраля 2011

В каждом уроке по JavaScript, который я смотрел, упоминается что-то о свойстве объекта. Но почему они называют это собственностью? например свойство конструктора, var a = function{this.b}, где b снова называется свойством. Насколько я знаю, свойства имеют геттер и / или сеттер, поэтому их нужно называть полем, не так ли?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

Некоторые поставщики браузеров внедрили методы получения / установки для свойств JavaScript.

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

Что касается вашего первоначального вопроса, я бы сказал, что причина, по которой он называется свойством в JavaScript, заключается в том, что это динамический язык, а базовая разметка использует только свойства и локальные переменные. Так как все связано с определенной иерархией области действия, все, что у вас есть, это разные ветви дерева на каждом уровне. И Дуглас Крукфорд назвал их свойствами :)

2 голосов
/ 02 февраля 2011

Это как с hash, map, dictionary и associative array; разные языки любят называть их разными вещами. Терминология (к сожалению) не может передаваться на 100% между языками программирования.

...