Возврат данных метода внутри объекта в ES6 - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь разделить проблемы в своем коде. Я хочу создать файл конфигурации, в котором я использую тот же метод для установки чего-либо. Обратите внимание, что это только для демонстрационных целей. Есть ли способ вызвать функцию на основе car или bike выбранного объекта config. Если да, не могли бы вы помочь мне?

Я получал setYear is undefined error. Я хочу установить год объекта автомобиля из объекта конфигурации. Я хочу получить доступ к функции setYear с помощью объекта конфигурации.

const buildConfig = () => {
  const car = {}
  car.label = config['car'].label;
  car.year = config['car'].setYear('2020')
  console.log('car details', car);
}

const config = {
  'car': {
    label: 'Sedan',
    setYear: setYear
  },
  'bike': {
    label: 'Sedan',
    setYear: setYear
  }
}

const setYear = (year) => {
  car.year = year;
}

buildConfig();

1 Ответ

3 голосов
/ 19 июня 2020

Используйте setYear как обычную функцию и используйте this для доступа к свойству объекта

Чтобы узнать, почему это работает с функцией, проверьте это Можете ли вы связать это в стрелочной функции?

const buildConfig = () => {
  const car = {}
  car.label = config['car'].label;
  car.year = config['car'].setYear('2020')
  console.log('car details', car);
}

const setYear = function(year) { // Use normal function
  this.year = year; // Use this to assign year
  return this.year; // Return assigned year 
}

const config = {
  'car': {
    label: 'Sedan',
    setYear: setYear
  },
  'bike': {
    label: 'Sedan',
    setYear: setYear
  }
}

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