Доступность свойств и значений действий

Учитывая следующий пример:

module.exports = {
    name: "math",
    actions: {
        add: {
            cache: true,
            params: {
                a: "number",
                b: "number"
            },
            handler(ctx) {
                if (!ctx.add.cache)
                    return Number(ctx.add.params.a) + Number(ctx.add.params.b);
            }
        },

        sub: {
            cache: true,
            params: {
                a: "number",
                b: "number"
            },
            handler(ctx) {
                if (!ctx.sub.cache)
                    return Number(ctx.sub.params.a) - Number(ctx.sub.params.b);
            }
        },

        mult: {
            cache: true,
            params: {
                a: "number",
                b: "number"
            },
            handler(ctx) {
                if (!ctx.mult.cache)
                    return Number(ctx.mult.params.a) * Number(ctx.mult.params.b);
            }
        },

        div: {
            cache: true,
            params: {
                a: "number",
                b: "number"
            },
            handler(ctx) {
                if (!ctx.div.cache)
                    return Number(ctx.div.params.a) / Number(ctx.div.params.b);
            }
        },

        addAll(ctx) {
            return Number(ctx.add.params.a) +
                   Number(ctx.add.params.b) +
                   Number(ctx.sub.params.a) +
                   Number(ctx.sub.params.b) +
                   Number(ctx.mult.params.a) +
                   Number(ctx.mult.params.b) +
                   Number(ctx.div.params.a) +
                   Number(ctx.div.params.b);
        }
    }
};

Как я мог упростить приведенный выше код с точки зрения params только?

Должен ctx всегда использовался? Если нет, то в каких случаях это можно было бы опустить?

В каких случаях я мог бы использовать следующий синтаксис?ctx.mult.params.actx.params.actx.aa

0 ответов

Другие вопросы по тегам