Как получить значения из объекта без "имени"? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть фрагмент кода в JS:

var commands = require('commands.json');
module.exports = class CatCommand extends commando.Command {
    constructor(client) {
        super(client, {
            name: 'cat',
            group: 'fun',
            aliases: commands[this.group][this.name].aliases || [utils.translate(this.name)],
            memberName: name,
            description: commands[this.group][this.name].description || 'No description',
            examples: commands[this.group][this.name].usages || ['No examples'],
            throttling: {
                usages: 2,
                duration: 5
            }
        });
    }

    async run(message) {}
}

Мне нужно использовать переменные name и group в качестве ключа commands '.Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 26 декабря 2018

Поскольку вы создаете этот объект, вы не можете получить эти свойства (технически они еще не существуют).
Попробуйте объявить эти значения в переменной вне конструктора, например:

var name = "cat",
  group = "fun";

module.exports = class CatCommand extends commando.Command {
  constructor(client) {
    super(client, {
      name,
      group,
      aliases: commands[group][name].aliases || [utils.translate(name)],
      memberName: name,
      description: commands[group][name].description || 'No description',
      examples: commands[group][name].usages || ['No examples'],
      throttling: {
        usages: 2,
        duration: 5
      }
    });
  }
}
...