我收到此错误,但无法弄清楚原因:
this._courses[courseName].push(dish); ^
类型错误:无法在 Object.addDishToCourse 读取未定义的属性“推送”
let menu = {
_courses: {
appetizers: [],
mains: [],
desserts: [],
get appetizers() {
return this.appertizers;
},
set appetizers(newAppetizer) {
this.appetizers = newAppetizer;
},
get mains() {
return this.mains
},
set mains(newMain) {
this.mains = newMain;
},
get desserts() {
return this.desserts;
},
set desserts(newDessert) {
this.desserts = newDessert;
},
},
get courses() {
return {
appetizers: this._courses.appetizers,
mains: this._courses.mains,
desserts: this._courses.desserts
};
},
addDishToCourse(courseName, dishName, dishPrice) {
const dish = {
name: dishName,
price: dishPrice,
};
this._courses[courseName].push(dish);
},
getRandomDishFromCourse(courseName) {
const dishes = this._courses[courseName];
const randomIndex = Math.floor(Math.random() * dishes.length);
return dishes[randomIndedx];
},
generateRandomMeal() {
const appetizer = this.getRandomDishFromCourse("appetizers");
const main = this.getRandomDishFromCourse("mains");
const dessert = this.getRandomDishFromCourse("desserts");
const totalPrice = appetizer.price + main.price + dessert.price;
return `Your meal is ${appetizer.name}, ${main.name}, ${dessert.name}. Your total is $${totalPrice}.`
}
}
menu.addDishToCourse('appetizers', 'Ceasar Salad', 4.25);
menu.addDishToCourse('appetizers', 'Prawn Coctail', 4.25);
menu.addDishToCourse('appetizers', 'Garlic Bread', 3.50);
menu.addDishToCourse('mains', 'Lasagna', 9.75);
menu.addDishToCourse('mains', 'Ribeye Steak', 14.95);
menu.addDishToCourse('mains', 'Fish & Chips', 12.95);
menu.addDishToCourse('desserts', 'Cheese Cake', 4.50);
menu.addDishToCourse('desserts', 'Creme Brule', 4.25);
menu.addDishToCourse('desserts', 'Cheese Board', 3.25);
let meal = menu.generateRandomMeal();
console.log(meal);
试试这个方法:
let menu = {
_courses: {
_appetizers: [],
_mains: [],
_desserts: [],
get appetizers() {
return this._appetizers;
},
set appetizers(newAppetizer) {
this._appetizers = newAppetizer;
},
get mains() {
return this._mains
},
set mains(newMain) {
this._mains = newMain;
},
get desserts() {
return this._desserts;
},
set desserts(newDessert) {
this._desserts = newDessert;
},
},
get courses() {
return {
appetizers: this._courses.appetizers,
mains: this._courses.mains,
desserts: this._courses.desserts
};
},
addDishToCourse(courseName, dishName, dishPrice) {
const dish = {
name: dishName,
price: dishPrice,
};
this._courses[courseName].push(dish);
},
getRandomDishFromCourse(courseName) {
const dishes = this._courses[courseName];
const randomIndex = Math.floor(Math.random() * dishes.length);
return dishes[randomIndex];
},
generateRandomMeal() {
const appetizer = this.getRandomDishFromCourse("appetizers");
const main = this.getRandomDishFromCourse("mains");
const dessert = this.getRandomDishFromCourse("desserts");
const totalPrice = appetizer.price + main.price + dessert.price;
return `Your meal is ${appetizer.name}, ${main.name}, ${dessert.name}. Your total is $${totalPrice}.`
}
}
menu.addDishToCourse('appetizers', 'Ceasar Salad', 4.25);
menu.addDishToCourse('appetizers', 'Prawn Coctail', 4.25);
menu.addDishToCourse('appetizers', 'Garlic Bread', 3.50);
menu.addDishToCourse('mains', 'Lasagna', 9.75);
menu.addDishToCourse('mains', 'Ribeye Steak', 14.95);
menu.addDishToCourse('mains', 'Fish & Chips', 12.95);
menu.addDishToCourse('desserts', 'Cheese Cake', 4.50);
menu.addDishToCourse('desserts', 'Creme Brule', 4.25);
menu.addDishToCourse('desserts', 'Cheese Board', 3.25);
let meal = menu.generateRandomMeal();
console.log(meal);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句