Javascript JS在构造函数中累加数字

Javascript JS在构造函数中累加数字,javascript,constructor,Javascript,Constructor,我遇到了一个问题。为了简单起见,我将把这个问题格式化为一个学校作业,但我的问题源于访问API数据,当我创建一个新的constructor函数时,它会记录以这种方式创建的所有项目的总价。例如: function Item(name, price, orderID) { var totalPrice; this.name = name; this.price = price; this.orderID = orderID; // This is where

我遇到了一个问题。为了简单起见,我将把这个问题格式化为一个学校作业,但我的问题源于访问API数据,当我创建一个新的constructor函数时,它会记录以这种方式创建的所有项目的总价。例如:

function Item(name, price, orderID) {
    var totalPrice;

    this.name = name;
    this.price = price;
    this.orderID = orderID;

    // This is where the addToTotalPrice function should do something
    function addToTotalPrice() {
        totalPrice += price;
    }();
}
但我无法在构造函数中运行这样的函数,即使是在这样一个简单的情况下。我怎样才能确保这是有效的

谢谢

--愚蠢的小马!:有两个问题:

1:您没有正确调用函数

2:totalPrice未定义

将代码更新为:

let totalPrice = 0;
(function(){
        totalPrice += price;
})();

编辑:谢谢@jonas。用于指出第二点。

这可能适合你。如果我误解了你的回答

函数项(){};
项目总价=0;
Item.create=函数(名称、价格、订单ID){
this.name=名称;
这个价格=价格;
this.orderID=orderID;
项目.总价+=此价格;
}
console.log(Item.totalPrice);
var item1=Item.create(“笔”,10123);
var item2=Item.create(“纸张”,10124);

console.log(Item.totalPrice)
totalPrice
未定义。如果
price
是一个数值,那么之后
totalPrice
将是
NaN
。我猜您的“简化”将代码转换为“胡说八道”,您既没有调用函数,也没有将其分配给实例,也没有返回值。如果您想对所有项目价格求和,那么编写一个函数来循环arra中的项目并对其价格求和可能会更容易<代码>(项目)=>项目.减少((prc,itm)=>prc+itm.价格,0)
。只需向其传递一个项目数组。他是。2) “不,不是。”乔纳斯说。我很抱歉。你是对的。我指的是总价。更新了答案。