gpt4 book ai didi

JavaScript - 使用原型(prototype)的构造函数

转载 作者:行者123 更新时间:2023-12-03 03:54:46 25 4
gpt4 key购买 nike

我有一个与在原型(prototype)构造函数中使用 if 语句有关的问题。

我正在尝试做的事情:

  1. 为 Item 构造函数创建一个calculatePrice 方法。
  2. 此方法默认返回对象的价格。
  3. 商品为水果,退回商品价格减去 5%。

代码 ** 不工作

function Item(name, price){
this.name = name;
this.price = price;
}

Item.prototype.calculatePrice = function() {
if (this.name === 'fruit') {
this.price = this.price * 0.95
} else {
this.price = this.price;
}
}

var ball = new Item('soccer ball', 15);
ball.calculatePrice();
// Expected results: 15

var fruit = new Item('fruit', 10);
fruit.calculatePrice();
// Expected results: 9.5

但是我的错误是我编写 if 语句的方式。在没有给我解决方案的情况下,您能指导我我的错误在哪里吗?谢谢。

最佳答案

您没有描述您的期望和代码的实际结果。但我想到的一件事是,您忘记在calculatePrice方法中返回this.price,因此结果是undefined而不是价格。即使使用当前版本,您也可以获得结果,但您必须通过检查实例的价格属性来显式执行此操作,例如。 水果.价格。而且价格也会随着每次调用calculatePrice方法而发生变化。而是将 this.price 分配给局部变量,对该变量进行计算并返回它。

关于JavaScript - 使用原型(prototype)的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com