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

    −50

    1. 1
    2. 2
    3. 3
    4. 4
    function invokeParent(actionName) {
        const result = this.module.__proto__.__proto__[actionName].apply(this, slice(arguments, 1))
        return result.then instanceof Function ? result : Promise.resolve(result)
      }

    Когда нужно вызвать action родительского контроллера, а this указывает на req

    Запостил: kissarat, 30 Января 2017

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

    • Пишу на js. Ни разу не юзал __proto__, и даже не знаю что это такое. Apply и call тоже не нужны.
      Ответить
      • как же ты юзал прототипориентированное наследование в жопаскрипте?
        Ответить
        • Оно тоже не нужно.

          Но вообще, если сильно упороться, то мы делаем как в этом примере https://learn.javascript.ru/class-inheritance

          Rabbit.prototype = Object.create(Animal.prototype);
          Rabbit.prototype.constructor = Rabbit;
          Ответить
          • Хер бы ты у меня собеседование прошёл.
            Ответить
            • ещё один любитель прототупесов и километровых цепочек карт-редьюсов

              у нас на работе просто есть один такой
              Ответить
              • Хуярт-редьюсов. Я вообще сейчас на тайпскрипт переключаюсь, но то, что под капотом происходит - понимать нужно.
                Ответить
                • TypeScript удобен вместо документации. Пользы больше, от строгой типизации я не вижу
                  Ответить

                  • >Пользы больше, от строгой типизации я не вижу
                    >весь код покрыт тестами на проверку типов

                    хех
                    Ответить
                    • зачем код покрывать тестами на проверку типов? Обычно динамическая типизация - это преимущество, которое позволяет абстрагироваться только к именам свойств и методов. Например если result.then instanceof Function, то вероятно результат - промис, и мне не важно стандартный ли это класс и как он называется (например result.constructor.name === 'Promise')
                      Ответить
                  • > Пользы больше я не вижу
                    увидишь, когда попадешь на проект, фронт и бек которого делает больше 1 человека больше 1 недели
                    Ответить
                    • Да, здесь не поспорю, работаю сам.
                      Ответить
                      • Ну вот о чем и речь. А то начинают к говну пять прибавлять и устраивают митинг на весь день кто где с типами обосрался
                        Ответить
      • __proto__ - ненужная питушня, которое в приличном обществе не используют.
        Apply и call полезны для метапитушни
        apply удобен как минимум при работе с домом, т.к. там есть массивоподобные объекты, к которым хочется применить что-нибудь из Array.prototype.
        Ответить
        • Если нужны методы Array, то их можно просто присвоить нужному объекту с Array.prototype
          __proto__ стал стандартом де-факто и, хотя бы, для работы автодополнения лучше использовать его вместо Object.create + Object.assign
          Ответить
        • JavaScript - ненужная питушня, которое в приличном обществе не используют.
          Ответить
          • Веб — неприличное общество.
            Ответить
          • Откуда такое потрясающее отношение к JS?
            Шеф насильно заставляет переписывать старый сайт компании, а уволившись, можно не найти новую работу?
            Завидно, что все одноклассники пишут на JS, неплохо зарабатывают, удачно женились и имеют интересные хобби?
            Не хватило сил разобраться в языке, чтобы написать "hello world"?
            Ответить
            • У баропа же личная неприязнь ко всем пхпшникам и жсникам. Они доширакщики и делают сайты за копейки.
              Ответить
    • Потом ее перевернули на живот, и стали трахать в попу, снова один за другим, матерясь и нанося удар за ударом.
      Ответить

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