我用原型创建了一个外部.js文件:

function Logger() {
    var log = new Array("");
}

Logger.prototype.AddLine = function (value) {
    if (value) {
        Logger.log.push("\t" + value);
    }
}

Logger.prototype.ReadLog = function () {
    return this.log.join("");
}


现在,我尝试在页面上使用它。我将文件包含在标题中。我有简单的js:

$(document).ready(function () {

        var log = new Logger();
        log.AddLine("User entered the page");
});


萤火虫错误:
TypeError:Logger.log未定义
[中断此错误]
Logger.log.push(“ \ t” +值);

谁能解释为什么会这样吗?

最佳答案

要将log实例上的Logger设置为空数组,请使用this.log = [],而不是var log。后者创建一个私有变量,您不能在函数外部访问它。

同样,Logger.log表示:访问log函数上的Logger属性。在这里,您需要实例,所以使用this.log(就像在ReadLog中所做的一样)。

关于javascript - 如何在外部文件中创建js原型(prototype)类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14663497/

10-16 23:22