Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Оператор запятая. Не возбраняется? (https://javascript.ru/forum/offtopic/43363-operator-zapyataya-ne-vozbranyaetsya.html)

nerv_ 03.12.2013 13:22

Цитата:

Сообщение от ksa
Такой "набор" просто вернет последний элемент "перечня"...

но пройдется по всем

ksa 03.12.2013 13:24

Цитата:

Сообщение от nerv_
если хочешь себя запутать

Про "запутывание"... :)

Много в каких языках могут применяться конструкции ну ооочень особенные! Во только оправдывает их повсеместное использование. Т.о. даже новички, не понимая их смысл, но зная "конечное" назначение применяют их правильно и к месту... :)
Может так будет и с запятой? Если начать ее применять всем поголовно для неких стандартных ситуаций... :D

ksa 03.12.2013 13:25

Цитата:

Сообщение от nerv_
но пройдется по всем

Разумеется. :yes:
Это-то в купе и начинают использовать. Т.е. выполнить последовательность выражений и вернуть результат последнего...

ksa 03.12.2013 13:29

Например вот это

function test(Val) {
   Val=Val||1;
};

Считается "стандартной" обработкой параметров функции, дабы придать им значение "по умолчанию"...

А это
<элемент>=<проверка_на_существование_элемента>||(<инициализация_элемента>,<элемент_по_умолчанию>);

кагбе "расширение" первой конструкции. :)

danik.js 03.12.2013 13:55

Цитата:

Сообщение от ksa
Сама запятая тут не подведет...

Вот, нашел тему, из-за которой у меня возникли сомнения:
http://stackoverflow.com/questions/9...-in-javascript

Кажется теперь понял тот трюк.

Цитата:

Сообщение от monolithed
this.$element || this.$init()

Поясню по поводу задачи, а то смотрю не все увидели, что я пытаюсь реазиловать ленивую инициализацию.

Суть в том, что изначально this.$element = null, и создаться он должен только при первом обращении к нему. Для этого нужно вызвать метод this.$init(). Причем $init() не должен ничего возвращать.

Есть идеи реализовать это иначе?

ksa 03.12.2013 14:01

Цитата:

Сообщение от danik.js
Есть идеи реализовать это иначе?

Самая короткая запись будет именно с "запятой"... :yes:

По-мне так можно эту конструкцию просто добавить в "методическую копилочку" и просто использовать, показывая как можно большему количеству людей.
Так она будет обще понятна...

Gozar 03.12.2013 14:03

Цитата:

Сообщение от danik.js
Есть идеи реализовать это иначе?

Прикинь да?! Идея одна есть:

if (!this.$element) {
    this.$init();
}

return this.$element;

danik.js 03.12.2013 14:17

Цитата:

Сообщение от Gozar
Прикинь да?! Идея одна есть:

Не понимаю твоего юмора. Зачем ты выдаешь мой код за свою идею.

Gozar 03.12.2013 14:28

Цитата:

Сообщение от danik.js
Не понимаю твоего юмора. Зачем ты выдаешь мой код за свою идею.

Бывает...;)

l-liava-l 03.12.2013 14:59

Обычно так пишу, понятно и жмется
if (!this.$element) {
    this.$init();
}
return this.$element;


так реже, ибо немножко путает)
return this.$element || this.$div;


Часовой пояс GMT +3, время: 04:47.