gpt4 book ai didi

javascript - 如何在外部文件中创建js原型(prototype)类

转载 作者:行者123 更新时间:2023-11-28 13:45:33 25 4
gpt4 key购买 nike

我创建了一个带有原型(prototype)的外部 .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 错误:类型错误:Logger.log 未定义[中断此错误]
Logger.log.push("\t"+ value);

谁能解释一下为什么会发生这种情况?

最佳答案

您正在使用四种(!)不同的日志内容:

  • var log = new Logger(); 是一个包含新 Logger 实例的(本地)变量
  • var log = new Array(""); 是一个(局部)变量,其作用域仅限于声明它的构造函数。您将无法从外部访问它<
  • Logger.log.…Logger 函数对象的属性。没有任何内容,所以这一行会抛出错误。
  • this.log.... 是您真正想要的,当前实例的属性。

因此将您的脚本更改为:

function Logger() {
this.log = [""]; // not sure why not just an empty array
}

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

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com