Задать вопрос
maler1988
@maler1988
Web-программист (1С Bitrix)

Что это за подход написание js?

Ведём проект, до нас его делала контора из топ-10 студий России. Исходники не дали, на руках есть только обфусцированные и минифицированные файлы js и css. Полез в js-ку и что-то меня в ступор поставило )) Вот пример кода:

h = function(t) {
                function e(t) {
                    a(this, e);
                    var n = o(this, (e.__proto__ || Object.getPrototypeOf(e)).call(this, t));
                    return n.favoriteShops = {}, n.nonFavoriteShops = {}, n.$showMoreSel = $("Класс-селектора"), n.lists = {
                        favorite: {
                            selector: "#ИД-селектора",
                            data: n.favoriteShops
                        },
                        other: {
                            selector: "#ИД-селектора",
                            data: n.nonFavoriteShops
                        }
                    }, n
                }
                return s(e, t), r(e, [{
                    key: "init",
                    value: function() {
                        l(e.prototype.__proto__ || Object.getPrototypeOf(e.prototype), "init", this).call(this)
                    }
                }, {
                    key: "bindEvents",
                    value: function() {
                        l(e.prototype.__proto__ || Object.getPrototypeOf(e.prototype), "bindEvents", this).call(this);
                        var t = this;
                        t.$showMoreSel.on("click", function(e) {
                            var n = $(this),
                                i = n.prev("Класс-селектора"),
                                a = i.data("type"),
                                o = t.lists[a].data,
                                s = i.find("Класс-селектора").length,
                                r = 5;
                            t.appendStoreItems(o, r, s, i, "list"), e.preventDefault()
                        })
                    }
                },
				
				/* и дальше идут подобные конструкции { key: имяФункции, value: реализацияФункции } */


с таким подходом не сталкивался раньше, когда используется { key: имяФункции, value: реализацияФункции } . Что это? Самодеятельность разработчика или это какой-то подход в написании SPA приложений например? К сожалению обфускация ещё больше усложняет понимание.
  • Вопрос задан
  • 174 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Скорее всего разработчики писали код на ес6 и транспилировали (babel и иже с ним) его в ес5 для поддержки ИЕ, т.к. результат транспиляции ес6->ес5 обычно именно так и выглядит.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Очень похоже на то, как babel транспилирует ES6 классы. (key-value тут нужны потому что в дальнейшем это скармливается специальному хелперу, который обрабатывает это с помощью Object.defineProperty для лучшей эмуляции поведения методов в ES6-классах.)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@TheRevan
Здесь 2 варианта:
1. Это просто какая либо подключенная библиотека.
2. После сжатия и расжатия js-ки, она расжалась в не читаемый вид
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы