1. JavaScript / Говнокод #21430

    −20

    1. 1
    2. 2
    if (!!!ko.dataFor(data.vulnerabilityPopupDialog[0]))
                          ko.applyBindings(data.vulnerabilityVM, data.vulnerabilityPopupDialog[0]);

    не не не - это не я писал :)

    Запостил: dens, 13 Октября 2016

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

    • > ko.data

      Проклятые теоретики! И в JS свои ко-данные тащат!
      ko!!!


      Кстати, если посмотреть в зеркало:

      !!!ko | ok!!!
      Ответить
      • > Проклятые теоретики
        Ну так js - функциональный язык :)
        Ответить
        • Действительно. Потому в нем и нет ООП
          Ответить
          • Можешь сделать в труъ функциональном стиле - объявить члены var'ами внутри конструктора, там же объявить лямбды-методы и вернуть словарь с этими методами. Непробиваемая инкапсуляция.
            Ответить
            • Городок в западно-американской степи. Салун. За столом сидят два ковбоя, местный и приезжий, и пьют виски. Вдруг по улице кто-то проносится на огромной скорости, паля во все стороны из револьверов. В салуне никто и ухом не ведёт. Приезжий местному:
              — Билли?
              — Да, Гарри?
              — Что это было, Билли?
              — Это был Неуловимый Джо, Гарри.
              — А почему его зовут Неуловимым Джо, Билли?
              — Потому что его никто ещё не поймал, Гарри.
              — А почему его никто ещё не поймал, Билли?
              — Потому что он нафиг никому не нужен, Гарри.
              Ответить
            • Пример кода (для тех, у кого нет воображения) покажете?
              Ответить
              • Ну так типично же
                function Incapsulator3000() {
                  var name = 'Incapsulator', model = 3000;
                  this.name = function() { return name; };
                  this.model = function() { return model; };
                }
                
                > var inc = new Incapsulator3000();
                < undefined
                > inc.name();
                < "Incapsulator"
                > inc.model();
                < 3000
                Аналогично можно сделать setXXX и писать в "локальные" переменные функции-конструктора, которые не будут доступны напрямую.
                Ответить
                • показать все, что скрытоИными словами писать на языке можно, просто очень сложно и неудобно.
                  Ответить
                  • Вообще говоря, так не рекомендуется делать, ибо потребление памяти сильно возрастает. Так каждый метод объекта тянет за собой замыкание.
                    Ответить
                  • Да, кстати, подход стал стандартным.

                    Особенно радует слово «function» вместо object/class/что-нибудь ещё, почти как struct в известном языке. Да, можно писать new Function(), чем рвать мозг новичкам.
                    Ответить
    • показать все, что скрытоЯ - свинья, и ты - свинья,
      Все мы, братцы, свиньи.
      Нынче дали нам, друзья,
      Целый чан ботвиньи!
      Ответить

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