【问题标题】:JSLint unexpected 'that' messageJSLint 意外的“那个”消息
【发布时间】:2014-12-09 11:49:52
【问题描述】:

我刚刚开始使用 JSLint 来确保我创建的 JavaScript 代码至少符合一些标准,但我收到了一条令人困惑的消息:

JSLint: Unexpected 'that'.

代码是实现进度条的解决方案的一部分,其中一部分是处理定时器和回调的这个对象,如下(这是从一个较大文件的开头摘录,我可以添加整个文件如果需要):

var ProgressHandler = function () {
    "use strict";

    // Build a new object
    var that = {};

    // Add basic properties
    that.taskid = 0;
    that.timerid = 0; // Timer ID used to push refreshes
    that.progressUrl = ""; // URL to invoke to read progress
    that.interval = 500; // The interval for progress refresh
    that.taskProgressCallback = null; // The user-defined callback that refreshes the UI 
    that.taskCompletedCallback = null; // The user-defined callback that finalizes the call 

    // Set progress url
    that.setProgressUrl = function (url) {
        that.progressUrl = url;
        return this;
    }

    // Set frequency of refresh
    that.setInterval = function (interval) {
        that.interval = interval;
        return this;
    };

消息出现在以that.setInterval 开头的行上。我还有其他用途,但 JSLint 也说它此时停止处理。我已尝试搜索此消息,但未在此处或 jslinterrors.com 上专门列出。

为什么会出现这种情况,我可以做些什么来解决它?还是应该忽略它?

【问题讨论】:

  • 当我通过 JSLint 运行它时,that.setInterval 上会抛出错误。
  • 糟糕,我应该说第三。我的意思是 that.setInterval 行

标签: javascript jslint


【解决方案1】:

问题似乎是在that.setProgressUrl 的定义之后没有;。改为:

    // Set progress url
    that.setProgressUrl = function (url) {
        that.progressUrl = url;
        return this;
    };

解决了报告的问题。然后,您会遇到一个问题,即文件末尾缺少右括号和分号,不确定这是否只是复制和粘贴问题。完整的脚本应该如下所示:

var ProgressHandler = function () {
    "use strict";

    // Build a new object
    var that = {};

    // Add basic properties
    that.taskid = 0;
    that.timerid = 0; // Timer ID used to push refreshes
    that.progressUrl = ""; // URL to invoke to read progress
    that.interval = 500; // The interval for progress refresh
    that.taskProgressCallback = null; // The user-defined callback that refreshes the UI 
    that.taskCompletedCallback = null; // The user-defined callback that finalizes the call 

    // Set progress url
    that.setProgressUrl = function (url) {
        that.progressUrl = url;
        return this;
    };

    // Set frequency of refresh
    that.setInterval = function (interval) {
        that.interval = interval;
        return this;
    };
};

【讨论】:

  • 这不是一个完整的文件,只是一个文件的开头,这就是缺少项目的原因。
  • @ClaraOnager,有道理。希望其余的答案能解决您的问题
  • 我认为解密 JSLint 消息的一般原则是,当您收到意外的“某事”消息时,您应该从该点向后查看潜在问题。跨度>
  • @ClaraOnager。是的 - 据我所知,JSLint 从上到下工作,因此任何错误的原因都应该在指示的行或上面。
猜你喜欢
  • 2015-07-30
  • 2016-05-21
  • 2012-02-29
  • 2017-05-22
  • 1970-01-01
  • 2012-06-23
  • 2015-08-11
  • 2016-03-01
相关资源
最近更新 更多