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 が定義されていません [このエラーで中断]
Logger.log.push("\t" + value);

なぜこれが起こっているのか誰でも説明できますか?

4

2 に答える 2

3
于 2013-02-02T15:47:53.220 に答える
2

インスタンスを空の配列に設定logするには、 ではなくを使用します。後者は、関数の外部からアクセスできないプライベート変数を作成します。Loggerthis.log = []var log

また、関数のプロパティにLogger.logアクセスすることを意味します。ここでは代わりにインスタンスが必要なので、( で行ったように) を使用します。logLoggerthis.logReadLog

于 2013-02-02T15:44:13.473 に答える