Я только что просматривал код привычного кода (приложение vue.js) и наткнулся на использование оператора ниже спреда, например, ЗДЕСЬ . Внутри вычислений у вас есть следующее:
computed: {
...mapState({
user: 'user.data',
castingSpell: 'spellOptions.castingSpell',
isRunningYesterdailies: 'isRunningYesterdailies',
}),
}
Теперь мне никогда не показалось, что оператор распространения, используемый в сочетании с функцией, не уверен, что здесь хорошо, mapState
радует, что это функция, присутствующая в другом файле, который выглядит так:
export function mapState (states) {
const res = {};
normalizeMap(states).forEach(({ key, val }) => {
res[key] = function mappedState () {
return typeof val === 'function' ?
val.call(this, this.$store.state, this.$store.getters) :
get(this.$store.state, val);
};
});
return res;
}
Я понимаю оператор распространения при использовании с Array
или Object
, но что именно здесь происходит с функцией?