0

我用原型创建了一个外部 .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");
});

Firebug 错误:TypeError: Logger.log is undefined [Break On This Error]
Logger.log.push("\t" + value);

谁能解释为什么会这样?

4

2 回答 2

3
于 2013-02-02T15:47:53.220 回答
2

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

另外,Logger.log意味着:访问函数的log属性。Logger在这里你想要实例,所以使用this.log(就像你在 中所做的那样ReadLog)。

于 2013-02-02T15:44:13.473 回答