因此,我目前正在研究代码学院的一些问题,并在思考其中的“推荐”解决方案。代码如下:

  ...

  getRandomDishFromCourse(courseName) {
    ...
    return this._courses['appetizers'];
  },

  generateRandomMeal() {
    const appetizer = this.getRandomDishFromCourse('appetizers');
    ...

    return `Your meal is ${appetizer.name}...`
  }


因此,他们使用字符串作为参数调用getRandomDishFromCourse,然后在函数中通过括号表示法访问对象。我将如何使用getter和setter解决此问题?最佳做法是什么?

我解决这个问题的想法在下面介绍,但不起作用...

  get appetizers() {
    return this._courses._appetizers;
  },

  ...

  getRandomDishFromCourse(courseName) {
    let dish = courseName;
    return dish;
    ...
  },

  generateRandomMeal() {
    const appetizer = this.getRandomDishFromCourse(this.appetizers);
    ...

    return `Your meal is ${appetizer.name}...`
  }

最佳答案

我的基本问题是如何“传递”一个吸气剂,而不是传递通过括号表示法访问的字符串?


你不知道但是您可以传递数组:

getRandomDishFromCourse(course) {
  let disk = course[Math.floor(course.length * Math.random())];
  return dish;
},

generateRandomMeal() {
  const appetizer = this.getRandomDishFromCourse(this.appetizers);
  // ...
}


...或获取适当数组的函数:

getRandomDishFromCourse(getCourse) {
  let course = getCourse();
  let disk = course[Math.floor(course.length * Math.random())];
  return dish;
},

generateRandomMeal() {
  const appetizer = this.getRandomDishFromCourse(() => this.appetizers);
  // ...
}

08-17 20:25