gpt4 book ai didi

Javascript:在for循环内调用时获取不是函数错误

转载 作者:行者123 更新时间:2023-11-29 23:47:15 26 4
gpt4 key购买 nike

当我在循环内调用原型(prototype)函数时出现错误。

var Book = function(title, Available, publicationDate, checkoutDate, callNumber, Authors) {
this.title = title;
this.Available = false;
this.publicationDate = new Date();
this.checkoutDate = checkoutDate;
this.callNumber = 690080;
this.Authors = Authors;
};

其他具有 booksOut 数组属性的类

var Patron = function(firstName, lastName, libCardNum, booksOut, fine) {
this.firstName = firstName;
this.lastName = lastName;
this.libCardNum = libCardNum;
this.booksOut = [];
this.fine = 0.00;
};

应该将书添加到赞助人类中的数组属性的原型(prototype)

Patron.prototype.read = function(Book) {
this.booksOut.add(Book);
}

导致 TypeError 的循环:catalog[k].read 不是带括号的函数错误,没有它们它总是给出相同的输出。

for (var i = 0; i < 90; i++) {
for (var j = 0; j < catalog.length; j++) {
for (var k = 0; k < patrons.length; k++) {
var fine = patrons[k].fine;
if (catalog[k].Available) {
catalog[k].checkOut();
} else {
catalog[k].checkIn();
catalog[k].read();
if (catalog[k].isOverdue()) {
fine = fine + 5.00;
}
}
patrons[k].fine = fine;
}
}
}

如有任何帮助,我们将不胜感激。

最佳答案

问题是在你的问题中你没有清楚地说明 catalog[k] 是什么......
但我假设它是 Book 类型,因为它具有 Available 等属性。
那么错误是有道理的,因为您没有为 Book 定义任何方法 read,您只是为 Patron 定义了它。

因此你可以像这样在 Patron 上调用读取函数

...  
catalog[k].checkIn();
patrons[k].read(catalog[k]);
...

关于Javascript:在for循环内调用时获取不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43575629/

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