繁体   English   中英

JavaScript:如何推送到在箭头函数内创建的对象内的数组

[英]JavaScript: How to push to an array inside an object that was created inside an arrow function

那么如何推送到 CONSUPTION 数组呢? 使用 THIS 不起作用,并且我不知道如何使 ORDER 起作用。

const createMenu = (menu) => ({
        fetchMenu: () => menu,
        consumption: [1,2],
        order: (string) => {
          this.consumption.push(string);
        },
        pay: () => {
          let cont = 0
          const cardapio = { ...menu.food, ...menu.drink}
          for (let itens of this.consumption){
            cont += cardapio[itens];
          };
          return cont;
        },
      });

order箭头函数更改为常规函数,在对象中使用它不是一个好主意。

这样做的原因是,在常规函数中, this关键字表示调用该函数的对象。 与常规函数不同,箭头函数没有自己的this 箭头函数中this的值在函数的整个生命周期中保持不变,并且始终绑定到最近的非箭头父函数中的this值。

 const createMenu = (menu) => ({ fetchMenu: function(){ return menu}, consumption: [1,2], order: function(string) { this.consumption.push(string); }, pay: function() { let cont = 0 const cardapio = { ...menu.food, ...menu.drink} for (let itens of this.consumption){ cont += cardapio[itens]; }; return cont; }, }); const menu = createMenu(); console.log(menu.consumption); menu.order(3); console.log(menu.consumption);

可以在此处this有关箭头功能的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM