ЙажаСценарий / Говнокод #22352 Ссылка на оригинал

0

  1. 1
var isValue = workTime && workTime.data && workTime.data[dayOfWeek] && workTime.data[dayOfWeek][workOrBreak] && (workTime.data[dayOfWeek][workOrBreak][startOrEnd] || workTime.data[dayOfWeek][workOrBreak][startOrEnd] === 0);

is value or not? that is the question

Запостил: apostolovd apostolovd, (Updated )

Комментарии (5) RSS

  • Интересно, можно ли в JS каким-то образом вернуть для несуществующего свойства не undefined, а Object с такой же функциональностью (т.е. умеющий возвращать не undefined для несуществующего свойства)? За такое могут и памятник поставить. Я так понимаю, это что-то вроде Maybe.
    Ответить
    • var MaybeObject = function() {
      	return new Proxy(this, {
      		get: function(target, name) {
      			if (name in target) {
      				return target[name];
      			}
      
      			return new MaybeObject();
      		}
      	});
      }


      Нет, херня. Да, можно вызывать по цепочке что угодно и как угодно, но результат придётся проверять на то, не Proxy ли это. Ну и пирфоманс же.
      Ответить
      • Сделать доступ ко всем свойствам только через методы .get(key) и .set(key, value), и нехрен руками своими грязными лазить, где не надо.
        Ответить
          • Не знаю как там в Java, но это уж точно лучше, чем исходный говнокод.

            const val = workTime.get(`data.${dayOfWeek}.${workOrBreak}.${startOrEnd}`)
            var isValue = val || val === 0
            Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8