开发者问题收集

尝试将对象推送到数组中,但数组未定义

2019-10-31
66

简单问题,假设“dish”是同一类型的标准对象。为什么无法推送?

 class DinnerModel {
  constructor() {
    this.menu = new Array();
    this.dishes = dishesConst;
    this.guests = this.setNumberOfGuests(1);
  }

  addDishToMenu(dish) {
    menu.push(dish);
  } 

我收到错误消息:

  ReferenceError: menu is not defined
    at DinnerModel.addDishToMenu (src/model/dinnerModel.js:76:5)
    at Context.<anonymous> (src/model/dinnerModel.test.js:204:15)
1个回答

很简单 - 您忘记在 addDishToMenu 中使用 this

这样可以工作:

addDishToMenu(dish) {
  this.menu.push(dish);
} 

另外,附注 - 您可以将其初始化为 [] ,而不是使用 new Array()

Gibor
2019-10-31