Показать сообщение отдельно
  #9 (permalink)  
Старый 18.04.2012, 17:41
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от macdack
почему при вызове свойства length используется синтаксис как при обращении к свойству объекта
Синтаксис один и тот же как для свойств, так и для методов - точечный (обычно применяется для объектов, а строки, также как и массивы, являются объектами javascript).

Вопрос в том, сделать ли длину строки её свойством или её методом.
Обычно свойства представляют в программе данные, методы - действия над данными.
Длина строки (количество символов в строке) - это данные, характеризующие строку, поэтому логичнее считать это свойством (возвращение длины строки считать методом, с этой точки зрения, нелогично, так как никаких действий над данными в этом случае не осуществляется, данные просто становятся доступными для использования).

Про то, что вы не можете изменять длину строки путём её прямой установки при помощи оператора присваивания, вам уже ответили - данное свойство доступно только для чтения и, следовательно, недоступно для записи.

Да, строки удобно рассматривать как одномерный массив символов, но это не обозначает, что строки обязаны быть в прямом смысле массивами, это вопрос стандарта языка.
Если хотите это изменить, вот два варианта:
1) обратитесь в W3C и убедите их это изменить
2) сделайте свой стандарт языка (в котором length доступно для записи), создайте поддерживающий его интерпретатор и браузер с этим интерпретатором и продвиньте свои продукты на мировом рынке).
Ответить с цитированием