Оператор спреда, используемый в сочетании с функцией в ES6, внутри Vue.js - PullRequest
0 голосов
/ 31 мая 2019

Я только что просматривал код привычного кода (приложение 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, но что именно здесь происходит с функцией?

1 Ответ

2 голосов
/ 31 мая 2019

Ваша функция возвращает Object, который получает распространение,

Вы можете понять на простом примере

  • Здесь func - это функция, которая создаетобъект на основе значения, переданного ему
  • внутри me объекта У меня есть одно свойство с именем info, которое я хочу установить как объект, поэтому я просто вызываю func с name and age и распространяем

let func = (name,age)=> ({name,age})

let me = {
  info: {...func('code maniac', 24)}
}

console.log(me)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...