JavaScript 错误:无法读取未定义的属性“推送”

伊博

我收到此错误,但无法弄清楚原因:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript Uncaught TypeError:无法读取未定义的属性“推送”

来自分类Dev

无法读取JavaScript错误中未定义的属性'preventDefault'

来自分类Dev

无法读取未定义的属性“长度”-JavaScript中的错误

来自分类Dev

错误:无法读取未定义的属性“ nota”。(JavaScript)

来自分类Dev

javascript中的类型错误:无法读取未定义的属性

来自分类Dev

javascript错误无法读取未定义的属性“长度”

来自分类Dev

Javascript 拆分错误:未捕获的类型错误:无法读取未定义的属性“拆分”

来自分类Dev

JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“ left”

来自分类Dev

JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“删除”

来自分类Dev

为什么我的JavaScript函数不执行?错误:无法读取未定义的属性“更改”

来自分类Dev

WebDriverWait.until-JavaScript错误:无法读取未定义的属性“ get”

来自分类Dev

DevExpress ASPxRichEdit-“无法读取未定义的属性'columnOffset'” JavaScript错误

来自分类Dev

JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“删除”

来自分类Dev

分页纯javaScript错误无法读取未定义的属性'style'

来自分类Dev

未捕获的类型错误:无法读取未定义的 Javascript 的属性“已检查”

来自分类Dev

类型错误:无法读取未定义的属性“then” - 尝试在纯 JavaScript 中获取数据

来自分类Dev

未捕获的类型错误:提交表单时无法读取 Javascript 中未定义的属性“init”

来自分类Dev

Javascript无法读取未定义的属性“ x”

来自分类Dev

TypeError:无法读取未定义的JavaScript属性“ push”

来自分类Dev

无法读取未定义Javascript的属性“ push”

来自分类Dev

Javascript Uncaught TypeError:无法读取未定义的属性“ 0”

来自分类Dev

TypeError:无法读取JavaScript中未定义的属性“ push”

来自分类Dev

TypeError:无法读取未定义Javascript的属性'forEach'

来自分类Dev

无法读取未定义Javascript的“长度”类型的属性

来自分类Dev

Javascript函数返回“无法读取未定义的属性长度”

来自分类Dev

无法读取JavaScript中未定义的属性“ textContent”

来自分类Dev

无法读取JavaScript中未定义的属性“ clearRect”

来自分类Dev

Javascript无法读取未定义的属性“ x”

来自分类Dev

无法读取未定义的属性“ 0”-JavaScript

Related 相关文章

  1. 1

    Javascript Uncaught TypeError:无法读取未定义的属性“推送”

  2. 2

    无法读取JavaScript错误中未定义的属性'preventDefault'

  3. 3

    无法读取未定义的属性“长度”-JavaScript中的错误

  4. 4

    错误:无法读取未定义的属性“ nota”。(JavaScript)

  5. 5

    javascript中的类型错误:无法读取未定义的属性

  6. 6

    javascript错误无法读取未定义的属性“长度”

  7. 7

    Javascript 拆分错误:未捕获的类型错误:无法读取未定义的属性“拆分”

  8. 8

    JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“ left”

  9. 9

    JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“删除”

  10. 10

    为什么我的JavaScript函数不执行?错误:无法读取未定义的属性“更改”

  11. 11

    WebDriverWait.until-JavaScript错误:无法读取未定义的属性“ get”

  12. 12

    DevExpress ASPxRichEdit-“无法读取未定义的属性'columnOffset'” JavaScript错误

  13. 13

    JavaScript错误:未被捕获的TypeError:无法读取未定义的属性“删除”

  14. 14

    分页纯javaScript错误无法读取未定义的属性'style'

  15. 15

    未捕获的类型错误:无法读取未定义的 Javascript 的属性“已检查”

  16. 16

    类型错误:无法读取未定义的属性“then” - 尝试在纯 JavaScript 中获取数据

  17. 17

    未捕获的类型错误:提交表单时无法读取 Javascript 中未定义的属性“init”

  18. 18

    Javascript无法读取未定义的属性“ x”

  19. 19

    TypeError:无法读取未定义的JavaScript属性“ push”

  20. 20

    无法读取未定义Javascript的属性“ push”

  21. 21

    Javascript Uncaught TypeError:无法读取未定义的属性“ 0”

  22. 22

    TypeError:无法读取JavaScript中未定义的属性“ push”

  23. 23

    TypeError:无法读取未定义Javascript的属性'forEach'

  24. 24

    无法读取未定义Javascript的“长度”类型的属性

  25. 25

    Javascript函数返回“无法读取未定义的属性长度”

  26. 26

    无法读取JavaScript中未定义的属性“ textContent”

  27. 27

    无法读取JavaScript中未定义的属性“ clearRect”

  28. 28

    Javascript无法读取未定义的属性“ x”

  29. 29

    无法读取未定义的属性“ 0”-JavaScript

热门标签

归档