Нормальный ли это стиль JS кода?

Я начинающий веб разработчик. Занимаюсь параллельно изучением html, css, php, sql, js, jquery, nodejs, websocket и пр. чуть более года. Сейчас работаю над улучшением стиля кода и его структуризацией. Скажу сразу, я ещё далёк от всеобъемлющего знания JS, так как учу его параллельно с уймой других языков и технологий, а так же учёбой в ВУЗе. Хотелось бы услышать конструктивные комментарии по поводу моего кода. Приведу пример скрипта для плавного скроллинга у себя на проекте.
let Scrolling = {
    Run: function Run(ScrollWrapperId, ScrollSpaceId, Acceleration, Duration, MaxSpeed, ScrollerWrapperId, ScrollerId) {
        let ScrollSession =  {
            Status: false,

            ScrollWrapperId: ScrollWrapperId,
            ScrollSpaceId: ScrollSpaceId,
            ScrollWrapper: $(ScrollWrapperId),
            ScrollSpace: $(ScrollSpaceId),

            ScrollerWrapperId: ScrollerWrapperId,
            ScrollerId: ScrollerId,
            ScrollerWrapper: $(ScrollerWrapperId),
            Scroller: $(ScrollerId),

            SpeedPoint: 0,
            Speed: 0,
            MaxSpeed: 0,

            Duration: Duration,
            TimePoint: 0,
            PreviousTime: 0,
            LastTime: 0,
            Interval: 0,
            LocalInterval: 0,

            Acceleration: Acceleration,
            SystemDelta: 0,
            Delta: 0,
            FirstDelta: 0,
            DeltaCoefficient: 0,

            Offset: 0,
            LocalOffset: 0,
        };

        $(document).on('wheel', ScrollSession.ScrollWrapperId, function (Event) {
            Event.preventDefault();

            ScrollSession.Offset = ScrollSession.ScrollWrapper.scrollTop();
            ScrollSession.SystemDelta = Event.originalEvent.deltaY;
            Scrolling.CalculateDelta(ScrollSession);
            ScrollSession.TimePoint = performance.now();
            ScrollSession.LastTime = performance.now() - 15;
            Scrolling.CalculateSpeedPoint(ScrollSession);

            if (!ScrollSession.Status) {
                Scrolling.Animate(ScrollSession);
            }
        });

    },

    Animate: function Animate(ScrollSession) {
        function AnimationStep() {
            ScrollSession.Status = true;

            ScrollSession.PreviousTime = ScrollSession.LastTime;
            ScrollSession.LastTime = performance.now();
            ScrollSession.Interval = ScrollSession.LastTime - ScrollSession.TimePoint;
            ScrollSession.LocalInterval = ScrollSession.LastTime - ScrollSession.PreviousTime;

            Scrolling.CalculateSpeed(ScrollSession);
            Scrolling.CalculateOffset(ScrollSession);

            ScrollSession.ScrollWrapper.scrollTop(ScrollSession.Offset);

            if ((ScrollSession.Interval < ScrollSession.Duration) && (Math.abs(ScrollSession.LocalOffset) > 0.1)) {
                requestAnimationFrame(AnimationStep);
            } else {
                ScrollSession.Status = false;
            }
        }
        AnimationStep();
    },

    CalculateTiming: function CalculateTiming(t, b, c, d) {
        t /= d;
        t--;
        return - c * (t*t*t*t - 1) + b;
    },

    CalculateDelta: function CalculateDelta(ScrollSession) {
        if (ScrollSession.FirstDelta === 0) {
            ScrollSession.FirstDelta = ScrollSession.SystemDelta;
            if (ScrollSession.FirstDelta < 20) {
                ScrollSession.DeltaCoefficient = Math.abs(100 / ScrollSession.SystemDelta);
            } else {
                ScrollSession.DeltaCoefficient = 1;
            }
        }
        ScrollSession.Delta = ScrollSession.SystemDelta * ScrollSession.Acceleration * ScrollSession.DeltaCoefficient * ScrollSession.ScrollWrapper.height() / 300;
    },

    CalculateSpeedPoint: function CalculateSpeedPoint(ScrollSession) {
        if ((ScrollSession.Speed > 0) && (ScrollSession.Delta > 0) || (ScrollSession.Speed < 0) && (ScrollSession.Delta < 0)) {
            ScrollSession.SpeedPoint = ScrollSession.Speed + ScrollSession.Delta;
        } else {
            ScrollSession.SpeedPoint = ScrollSession.Delta;
        }
    },

    CalculateSpeed: function CalculateSpeed(ScrollSession) {
        ScrollSession.Speed = ScrollSession.SpeedPoint - Scrolling.CalculateTiming(ScrollSession.Interval, 0, ScrollSession.SpeedPoint, ScrollSession.Duration);
    },

    CalculateOffset: function CalculateOffset(ScrollSession) {
        ScrollSession.LocalOffset = ScrollSession.Speed * ScrollSession.LocalInterval;
        ScrollSession.Offset = ScrollSession.Offset + ScrollSession.LocalOffset;
    },

    IdentifyObjects: function IdentifyObjects(ScrollSession) {
            ScrollSession.ScrollWrapper = $(ScrollSession.ScrollWrapperId);
            ScrollSession.ScrollSpace = $(ScrollSession.ScrollSpaceId);
            ScrollSession.ScrollerWrapper = $(ScrollSession.ScrollerWrapperId);
            ScrollSession.Scroller = $(ScrollSession.ScrollerId);
    }
};
  • Вопрос задан
  • 255 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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