Pull to refresh

Comments 24

Первый раз слышу о Getter и Setter в JS… сколько пишу на JS, такого не видел. Немного в шоке…
Вроде давно уже все про них говорят, правда использовать толком пока нельзя.
Наверно вот так и работает ExtJS 4… не дошли руки посмотреть как там работают Getter и Setter. Ну теперь буду думать, как можно применять в повседневной практике.
А в чем проблема с методами без параметров? Так и вызвать
Obj.Destroy;

Но если ваш код еще предстоит кому-то читать, то лучше конечно такое не писать.
В смысле если Destroy это getter…
Последняя фраза — ключевая. Более того, этот «кто-то» может быть сам автор кода спустя какое-то время.

Поэтому вот так лучше вообще никогда не писать.
UFO landed and left these words here
Вы неправильно используете геттеры/сеттеры. Они нужны только для того, чтобы можно было сделать что-нибудь с инкапсулированным полем (вроде бы это нельзя сделать в JS). Скажем, сделать его только для чтения. Так что не перетрудитесь.
Это замечательно, но остается вопрос — зачем всё это, если всё равно можно по-простому обратиться к свойству объекта через foo._bar в обход этих сеттеров-геттеров? Еще и быстрее будет.
Дело не в защите, а в поведении.
чтобы было больше путаницы? тогда в следующей версии надо ввести перегрузку операторов.
UFO landed and left these words here
хотел бы я посмотреть, как перегрузку операторов сделают для языка с динамической типизацией.
В свое время меня очень раздражали т.н. properties и их поведение в C#, и очень радует то, что по сей день их не ввели в C++. Действительно, есть некий предел, когда поведение кода невозможно определить по его внешнему виду, однако тут, видимо, все дело в традициях. Скажем так, любой код на C# пересыщен такого рода поведением, более того, считается хорошим тоном делать любые переменные внутри класса не просто переменными (variables), а именно свойствами (properties), потому читая сейчас код на С# я вполне четко осознаю, что операции присваивания — это далеко не просто присваивание, а целый процесс.

Из практики же могу сказать, что подобные вещи часто позволяют избегнуть больших изменений кода при рефакторинге. Иногда, заменив переменную на свойство и описав поведение при присвоении или получении значения, можно избежать написания кучи проверок в различных частях кода. Пример — присвоение нуля какой-то переменной, которая далее принимает участие в вычислениях как делитель, при чем используется эта переменная во многих местах кода. Есть два варианта рефакторинга для избежания ошибок деления: первый — найти и вставить проверку на 0 везде, где возможно (в том числе и в промежуточных результатах!), второй — описать свойство где и проверять значение на 0 при присвоении. Выгода очевидна.

Собственно о чем это все? О том, что все хорошо в меру и следует точно знать когда и какие свойства того или иного языка стоит применять (нормальный такой вывод в Ненормальном программировании").
www.youtube.com/watch?v=e9Zq5JmoRNY
Вот здесь нашёл хоткеи, о которых не знал

правда, наряду с малоизвестными хоткеями, рассказывается и о баянных, вроде, «alt+tab», f1 — помощь, delete — удаление. Такой вот микс.
Но возможностей у Getter'ов и Setter'ов действительно много. Если скомбинировать все с тем же AJAX, можно добиться вполне кошерного вида вроде:


Но только при синхронном запросе. Как Вы добьётесь такого вида при асинхронном запросе?
Автор, используете ли вы что-то из названного в топике на практике?
я-то губу раскатал на JScript…
Облом — не работает это в системных скриптах, только в браузерах!
Only those users with full accounts are able to leave comments. Log in, please.