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