使用变量在javascript中调用getter/setter
因此,我目前正在处理一些代码学院的问题,并正在考虑他们的“推荐”解决方案。代码如下:使用变量在javascript中调用getter/setter,javascript,Javascript,因此,我目前正在处理一些代码学院的问题,并正在考虑他们的“推荐”解决方案。代码如下: ... getRandomDishFromCourse(courseName) { ... return this._courses['appetizers']; }, generateRandomMeal() { const appetizer = this.getRandomDishFromCourse('appetizers'); ... re
...
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}...`
}
我的基本问题是如何“传递”一个getter,而不是传递一个通过括号表示法访问的字符串
你没有。但您可以传递数组:
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);
// ...
}
我的基本问题是如何“传递”一个getter,而不是传递一个通过括号表示法访问的字符串
你没有。但您可以传递数组:
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);
// ...
}
请创建一个工作片段来演示您的问题。请注意,您为
开胃菜
访问器设置的设置不正确:它没有设置开胃菜
,而是添加到开胃菜
。仅仅添加到数组并不是setter的用例。@t.J.Crowder感谢您的输入,我实际上已经删除了setter,因为这个问题只对getter有效。我的基本问题是如何“传递”一个getter而不是传递一个通过括号表示法访问的字符串?请创建一个工作片段来演示您的问题。请注意,您为开胃菜设置的访问器不正确:它没有设置开胃菜
,而是添加到开胃菜
。仅仅添加到数组并不是setter的用例。@t.J.Crowder感谢您的输入,我实际上已经删除了setter,因为这个问题只对getter有效。我的基本问题是如何“传递”一个getter,而不是传递一个通过括号表示法访问的字符串?太好了!谢谢,这很有道理!伟大的谢谢,这很有道理!