[英]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.