Доступность свойств и значений действий
Учитывая следующий пример:
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.a
ctx.params.a
ctx.a
a