gpt4 book ai didi

JavaScript:如何修复未正确分配属性值的实例

转载 作者:行者123 更新时间:2023-11-30 19:37:33 26 4
gpt4 key购买 nike

我创建了我的 Piece 类的一个实例,并试图打印出该实例的 quantity 的值,但我一直未定义。

我查看了 Google Chrome 控制台,console.log(temp) 很好,但在我看来它没有分配任何属性值。 (我相信如果您单击实例的下拉箭头,它应该会显示属性和值,对吗?)

我还有 console.log(length)console.log(quantity),它们打印正常。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Parker Steel Program</title>
<link rel="stylesheet" href="./main.css">
<script src="./form.js"></script>
<script src="./order.js"></script>
</head>
<body>
<h1>Parker Steel Company</h1>
<h2>New Order</h2>
<form id="order-info">
<label for="stock-length">Stock Length:</label>
<input autofocus="true" id="stock-length" name="stock-length" required="true" type="number">
<fieldset id="line1" name="line-1">
<label for="line-1-length">Length: </label>
<input id="line-1-length" name="line-1-length" required="true" type="number">
<label for="line-1-quantity">Quantity: </label>
<input id="line-1-quantity" name="line-1-quantity" required="true" type="number">
<button onclick="removePurchaseLine('line1')" type="button">Remove</button>
</fieldset>
<button id="add-purchase-line" name="add-purchase-line" onclick="addPurchaseLine()" type="button">Add Purchase Line</button>
<button onclick="getBestCuttingSequence()" type="button">Calculate</button>
</form>
</body>
</html>
class Piece {
constuctor(length, quantity) {
this.length = length;
this.quantity = quantity;
}
}

function getBestCuttingSequence() {
const stockLength = document.getElementById("stock-length").value;
const pieces = getPieces();
}

function getPieces() {
const pieces = []
const numPurchaseLines = document.getElementsByTagName("fieldset").length;

for (let purchaseLine = 1; purchaseLine <= numPurchaseLines; purchaseLine++) {
let length = document.getElementById(`line-${purchaseLine}-length`).value;
let quantity = document.getElementById(`line-${purchaseLine}-quantity`).value;
let temp = new Piece(length, quantity);
console.log(temp.length);
}

return pieces;
}

最终,我会将这些实例推送到 pieces 数组,稍后再使用它们。

我的预期结果将能够 console.log(temp.quantity) 并让它打印值。

当前正在打印 undefined。

编辑:更改属性名称。

最佳答案

几乎没有错别字。 构造函数 缺少r。改变它会起作用。

无论您如何向 this 添加属性而不修改您,您都可以传递对象,然后传递 Object.assign

class Piece {
constructor(obj) {
Object.assign(this,obj);
}
}

然后像这样传递

let temp = new Piece({length, quantity});

关于JavaScript:如何修复未正确分配属性值的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779590/

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