Javascript:在for循环内调用时未获得函数错误
当我在循环中调用原型函数时,我遇到了一个错误 班级Javascript:在for循环内调用时未获得函数错误,javascript,Javascript,当我在循环中调用原型函数时,我遇到了一个错误 班级 var Book = function(title, Available, publicationDate, checkoutDate, callNumber, Authors) { this.title = title; this.Available = false; this.publicationDate = new Date(); this.checkoutDate = checkoutDate;
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;
};
原型,该原型应将书籍添加到patron类中的数组属性中
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;
}
}
}
for(变量i=0;i<90;i++){
对于(var j=0;j
任何帮助都将不胜感激。问题是您在问题中没有明确说明什么是
catalog[k]
。但我假设它是
Book
类型,因为它有Available
那么这个错误是有意义的,因为您没有为
Book
定义任何方法read
,您只是为用户定义了它
因此,您可以像这样调用用户
上的read函数
...
catalog[k].checkIn();
patrons[k].read(catalog[k]);
...
什么是目录
?它是书籍
的一个实例,因此它没有读取
方法,该方法是为用户
而不是书籍
定义的。而且,它似乎期待一场争论。。。。调用该参数Book
不是最佳选择,因为它可能被误解为Book
构造函数。仅对构造函数/类使用init caps。如果您想知道,请感谢您的帮助。