Javascript 使用if-else状态创建显示可用性的服务

Javascript 使用if-else状态创建显示可用性的服务,javascript,function,constructor,class-diagram,Javascript,Function,Constructor,Class Diagram,) 我有以下代码: class order { constructor(gameName, qty, remQty, available){ this.gameName = gameName this.qty = qty; this.remQty = remQty; this.available = available; } function()

) 我有以下代码:

    class order {
        constructor(gameName, qty, remQty, available){
            this.gameName = gameName
            this.qty = qty;
            this.remQty = remQty;
            this.available = available;
        }
        function() { 
            if (this.available == 0) {
                return " is available" 
            } else {
                return  " is not available" 
            }
        }
    };
    let order = new order ('Call of Duty', '?', '?','?')
    let order = new order ('FIFA 21', '?', '?','?')
    let order = new order ('Crash Bandicoot', '?', '?','?')
    
    
    console.log(order1)

我的问题是,我是JavaScript新手,我不能让它工作。我想制作一个程序,显示给定数量(库存)的游戏是否可用,如果可用,我的代码将以“可用”或“不可用”响应,并且根据给定的订单,剩余数量将发生变化。如果我还想回答更多的问题,请帮助我。

你的课快开始上课了,我在这个回复中对它进行了润色,你可以用它来玩:

class Order {
    constructor(gameName, qty, remQty, available){
        this.gameName = gameName
        this.qty = qty;
        this.remQty = remQty;
        this.available = available;
    }
    isAvailable() { 
        if (this.available === 0) {
            return " is available" 
        } else {
            return  " is not available" 
        }
    }
};
const order1 = new Order ('Call of Duty', '?', '?', 0)
const order2 = new Order ('FIFA 21', '?', '?', 1)
const order3 = new Order ('Crash Bandicoot', '?', '?', 0)


order1.isAvailable()
order2.isAvailable()

您的尝试实际上非常接近,甚至比实际情况更复杂。丢失一些参数,
remQty
可用
可以继续。数量将简单地由单个数字确定,该数字在每次轮询可用性后递减

我将神奇发生的函数命名为
getAvailability
。这个名字表明我们得到了我们正在处理的订单的可用性

在它里面,你想知道:有什么东西是可用的。这个答案可以通过检查我们剩余的数量来确定。我们可以通过检查数量来做到这一点

在这里,您将返回带有可用性文本的不同字符串。为了让它更完美,最好使用插值将游戏名称注入字符串中,这是一个用于组合变量和字符串的花哨词汇

最简单的方法是使用。您可能知道字符串可以与
'
'
一起使用,但是这个字符串可以与backticks
`
一起使用。在该字符串中,您可以这样放置变量:

// this.gameName refers to the same gameName used in the constructor.
`${this.gameName} is available`;
现在,在返回字符串(将结束函数)之前,您需要修改订单的数量。这意味着用1减去
此.qty
。这可以通过递减分配来完成:

// We assign a new value..
this.qty = this.qty - 1;

// ..this does the same, but is shorter.
this.qty -= 1;
或者带着

现在您所要做的就是调用
getAvailability
方法(调用意味着运行函数,方法意味着作为对象一部分的函数),并检查它返回的响应

您可以使用输出变量和返回值。让这个工具成为你的朋友。它将照亮黑暗的地方,帮助你找到下一步

检查下面的示例,它将所有这些原则放在一起。请随时提出任何问题。欢迎来到神奇的JavaScript世界

类顺序{
构造函数(游戏名称、数量){
this.gameName=游戏名称;
该数量=数量;
}
getAvailability(){
如果(此数量>0){
这个数量--;
返回`${this.gameName}可用`;
}否则{
返回`${this.gameName}不可用`;
}
}
};
让codOrder=新订单(“职责召唤”,5);
让fifaOrder=新订单('FIFA21',2);
让crashBandicootOrder=新订单('crashbandicoot',1);
log(codOrder.getAvailability());
log(codOrder.getAvailability());
log(codOrder.getAvailability());
log(codOrder.getAvailability());
log(codOrder.getAvailability());
log(codOrder.getAvailability());
log(fifaOrder.getAvailability());
log(fifaOrder.getAvailability());
log(fifaOrder.getAvailability());
log(crashBandicootOrder.getAvailability());

log(crashBandicootOrder.getAvailability())
在您的案例中,
订单
是否实际从各种库存订购产品?还是
订单
本身就是股票?旁注:在JavaScript中,对象构造函数是用大写字母编写的。这是一种告诉你名字代表什么的方式,你应该使用
new
关键字(在大多数情况下)。@emielZuurbier这是股票本身。我并不是在试图实现一个拥有任何种类主要股票的系统。这只是一个简单的系统,显示客户已经订购了“此游戏”,它是否可用?你感觉到我了吗?我明白了。当有人询问是否有订单时,数量是否应该下降?为什么大多数论点都用问号填上?如果可能的话,是的。由于我是新手,我想从更有经验的作家那里得到答案,看看这是否合适,或者我应该坚持股票=1或0。因为我不知道该在那里写什么,所以写满了问号
// We assign a new value..
this.qty = this.qty - 1;

// ..this does the same, but is shorter.
this.qty -= 1;
// This is also the same, but here it always decrements with 1.
this.qty--;