Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:在for循环内调用时未获得函数错误_Javascript - Fatal编程技术网

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。如果您想知道,请感谢您的帮助。