【发布时间】:2017-08-14 21:29:21
【问题描述】:
我在理解 JavaScript 方面有些困难。
当我发出 ajax 请求并且用户没有连接到主服务器时,将使用函数 notify 调用 Connection 类。
因此,当我现在打开页面,禁用我的互联网并单击触发请求的按钮时,我会收到警报你没有互联网连接了。
也不错。但不会调用函数“备份”。我收到这样的错误:TypeError: this.backup is not a function。
那么我错过了什么吗? JavaScript 是客户端,为什么我不能执行该功能?
PS:当我执行通知功能时,当我有互联网时它可以工作。
function Connection() {
this.backup = function() {
var data = [["Backup_Scenario"], ["123"]];
var csv = this.createCSV(data);
this.downloadCSV(csv);
}
this.notify = function() {
alert("You have no internet connection anymore");
this.backup();
}
this.createCSV = function(data) {
var lineArray = [];
data.forEach(function (infoArray, index) {
var line = infoArray.join(",");
lineArray.push(index == 0 ? "data:text/csv;charset=utf-8," + line : line);
});
var csvContent = lineArray.join("\n");
return csvContent;
}
this.downloadCSV = function(csv) {
var encodedUri = encodeURI(csv);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "backup.csv");
document.body.appendChild(link); // Required for FF
link.click();
}
}
【问题讨论】:
-
对我来说工作正常:jsfiddle.net/d61cwhcq 尝试通过 DevTools 和操作系统“脱机”。文件仍然可以毫无问题地下载。 Chrome 60,Windows 10。
-
它也适用于我:jsfiddle.net/pb3bm9jd
-
在
notify()方法中检查this
标签: javascript function oop